Package javax.interceptor
Class Interceptor.Priority
java.lang.Object
javax.interceptor.Interceptor.Priority
- Enclosing class:
- Interceptor
Priorities that define the order in which interceptors are
invoked. These values are intended to be used with the
Priority
annotation for
interceptors that are defined by means of interceptor binding.
Interceptors with smaller priority values are called first. If more than one interceptor has the same priority, the relative order of those interceptors is undefined.
- Interceptors defined by platform specifications that are to be executed at the beginning of the interceptor chain should have priority values in the range PLATFORM_BEFORE up until LIBRARY_BEFORE.
- Interceptors defined by extension libraries that are intended to be executed earlier in the interceptor chain, but after any interceptors in the range up until LIBRARY_BEFORE should have priority values in the range LIBRARY_BEFORE up until APPLICATION.
- Interceptors defined by applications should have priority values in the range APPLICATION up until LIBRARY_AFTER.
- Interceptors defined by extension libraries that are intended to be executed later in the interceptor chain should have priority values in the range LIBRARY_AFTER up until PLATFORM_AFTER.
- Interceptors defined by platform specifications that are intended to be executed at the end of the interceptor chain should have priority values at PLATFORM_AFTER or higher.
An interceptor that must be invoked before or after another defined interceptor can choose any appropriate value.
For example, an extension library might define an interceptor like this:
@Priority(Interceptor.Priority.LIBRARY_BEFORE+10) @Validated @Interceptor public class ValidationInterceptor { ... }The
Priority
annotation is
ignored when computing the invocation order of interceptors
bound to a target using the Interceptors
annotation.- Since:
- Interceptors 1.2
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Start of range for interceptors defined by applications.static final int
Start of range for late interceptors defined by extension libraries.static final int
Start of range for early interceptors defined by extension libraries.static final int
Start of range for late interceptors defined by platform specifications.static final int
Start of range for early interceptors defined by platform specifications. -
Method Summary
-
Field Details
-
PLATFORM_BEFORE
public static final int PLATFORM_BEFOREStart of range for early interceptors defined by platform specifications.- See Also:
-
LIBRARY_BEFORE
public static final int LIBRARY_BEFOREStart of range for early interceptors defined by extension libraries.- See Also:
-
APPLICATION
public static final int APPLICATIONStart of range for interceptors defined by applications.- See Also:
-
LIBRARY_AFTER
public static final int LIBRARY_AFTERStart of range for late interceptors defined by extension libraries.- See Also:
-
PLATFORM_AFTER
public static final int PLATFORM_AFTERStart of range for late interceptors defined by platform specifications.- See Also:
-