Annotation Interface Fallback
@Documented
@Retention(RUNTIME)
@Target(METHOD)
@Inherited
@InterceptorBinding
public @interface Fallback
The fallback annotation to define the fallback handler class so that
a failure can be handled properly. Below is the criteria:
- If value is specified, use
FallbackHandler.handle(ExecutionContext)
on the specified handler to execute the fallback. - If fallbackMethod is specified, invoke the method specified by the fallbackMethod on the same class.
- If both are specified, the
FaultToleranceDefinitionException
must be thrown.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Create a default class so the value is not required to be set all the time. -
Optional Element Summary
Modifier and TypeOptional ElementDescriptionSpecify the method name to be fallbacked to.Class<? extends FallbackHandler<?>>
Specify the fallback class to be used.
-
Element Details
-
value
Class<? extends FallbackHandler<?>> valueSpecify the fallback class to be used. An new instance of the fallback class is returned. The instance is unmanaged. The type parameter of the fallback class must be assignable to the return type of the annotated method. Otherwise,FaultToleranceDefinitionException
occurs.- Returns:
- the fallback class
- Default:
- org.eclipse.microprofile.faulttolerance.Fallback.DEFAULT.class
-
fallbackMethod
String fallbackMethodSpecify the method name to be fallbacked to. This method belongs to the same class as the method to fallback. The method must have the exactly same arguments as the method being annotated. The method return type must be assignable to the return type of the method the fallback is for. Otherwise,FaultToleranceDefinitionException
must be thrown.- Returns:
- the local method to fallback to
- Default:
- ""
-