users@javaee-spec.java.net

[javaee-spec users] [jsr342-experts] Priority of interceptors

From: Linda DeMichiel <linda.demichiel_at_oracle.com>
Date: Thu, 31 Jan 2013 11:22:18 -0800

The revisions to the Interceptor spec to accommodate the improved
managed bean alignment are nearly complete. You can download the
current draft of the spec from the interceptor-spec.java.net project
at http://java.net/projects/interceptors-spec/downloads

One of the issues that we still need to resolve, however, is the
assignment of priorities to the new transactional interceptors being
defined by JTA and the Bean Validation interceptors that handle
method validation.

Section 5.5 of the Interceptors spec defines the following Priority
values (see the spec for the details):

Interceptor.Priority.PLATFORM_BEFORE = 0
Interceptor.Priority.LIBRARY_BEFORE = 1000
Interceptor.Priority.APPLICATION = 2000
Interceptor.Priority.LIBRARY_AFTER = 3000
Interceptor.Priority.PLATFORM_AFTER = 4000

In our earlier discussions, we concluded that transactional
interceptors needed to come relatively early in the interceptor chain.
To put a stake in the ground, we propose that we define these to have
a priority of Interceptor.Priority.PLATFORM_BEFORE+200.

Validation interceptors, however, should come relatively late,
since they will ensure that the parameters that reach the method
(which might have been modified by other interceptors) are valid.
Again, to put a stake in the ground, we'll propose a priority of
Interceptor.Priority.PLATFORM_AFTER+1000.

Comments please!

Emmanuel, Paul, could you please consult with your expert groups
for further input as well...

thanks,

-Linda