- java.lang.Object
-
- jakarta.interceptor.Interceptor.Priority
-
- Enclosing class:
- Interceptor
public static class Interceptor.Priority extends java.lang.Object
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 { ... }
ThePriority
annotation is ignored when computing the invocation order of interceptors bound to a target using theInterceptors
annotation.- Since:
- Jakarta Interceptors 1.2
- See Also:
Priority
-
-
Field Summary
Fields Modifier and Type Field Description static int
APPLICATION
Start of range for interceptors defined by applications.static int
LIBRARY_AFTER
Start of range for late interceptors defined by extension libraries.static int
LIBRARY_BEFORE
Start of range for early interceptors defined by extension libraries.static int
PLATFORM_AFTER
Start of range for late interceptors defined by platform specifications.static int
PLATFORM_BEFORE
Start of range for early interceptors defined by platform specifications.
-
-
-
Field Detail
-
PLATFORM_BEFORE
public static final int PLATFORM_BEFORE
Start of range for early interceptors defined by platform specifications.- See Also:
- Constant Field Values
-
LIBRARY_BEFORE
public static final int LIBRARY_BEFORE
Start of range for early interceptors defined by extension libraries.- See Also:
- Constant Field Values
-
APPLICATION
public static final int APPLICATION
Start of range for interceptors defined by applications.- See Also:
- Constant Field Values
-
LIBRARY_AFTER
public static final int LIBRARY_AFTER
Start of range for late interceptors defined by extension libraries.- See Also:
- Constant Field Values
-
PLATFORM_AFTER
public static final int PLATFORM_AFTER
Start of range for late interceptors defined by platform specifications.- See Also:
- Constant Field Values
-
-