[cdi-dev] Fwd: [javaee-spec users] [jsr342-experts] transactional interceptors

Mark Struberg struberg at yahoo.de
Wed Dec 21 07:19:27 EST 2011


a.) how will the support for multiple databases work?
b.) what about the @TransactionScoped

LieGrue,
strub



----- Original Message -----
> From: Pete Muir <pmuir at bleepbleep.org.uk>
> To: cdi-dev at lists.jboss.org
> Cc: 
> Sent: Wednesday, December 21, 2011 12:51 PM
> Subject: [cdi-dev] Fwd: [javaee-spec users] [jsr342-experts] transactional interceptors
> 
> All, FYI
> 
> Please review this carefully, as this is one of the most requested features for 
> CDI - ability to use transactions in CDI managed beans.
> 
> Begin forwarded message:
> 
>>  From: Linda DeMichiel <linda.demichiel at oracle.com>
>>  Subject: [javaee-spec users] [jsr342-experts] transactional interceptors
>>  Date: 20 December 2011 23:16:38 GMT
>>  To: jsr342-experts at javaee-spec.java.net
>> 
>> 
>>  As part of better aligning managed bean technology across the
>>  platform, one of the improvements we've targeted for this release
>>  is the extension of "container-managed" transactions (CMT) beyond 
> EJB.
>> 
>>  CMT is one of the original ease-of-use facilities of EJB.  It entails
>>  the specification of declarative transaction attributes on enterprise
>>  bean classes or methods.  The container intercepts the corresponding
>>  method calls and interposes the necessary operations to initiate,
>>  suspend, or complete JTA transactions.
>> 
>>  In order to allow CMT-like functionality to be more broadly supported,
>>  we propose to standardize on CDI interceptors to implement transactional
>>  interpositioning on managed bean methods.
>> 
>> 
>>  More concretely, the proposal is the following:
>> 
>>  We propose to standardize on an annotation + element values that
>>  capture the semantics of the current EJB transaction attributes
>>  (Required, RequiresNew, Mandatory, Supports, NotSupported, Never).
>> 
>>  This annotation and standardized values would be added to the
>>  javax.transaction package.
>> 
>>  For example, this might look as follows:
>> 
>>  @Inherited
>>  @InterceptorBinding
>>  @Target({TYPE,METHOD})
>>  @Retention(RUNTIME)
>>  public @interface Transactional {
>>   TxType value() default TxType.REQUIRED
>>  }
>> 
>>  public enum TxType {
>>        REQUIRED,
>>        REQUIRES_NEW,
>>        MANDATORY,
>>        SUPPORTS,
>>        NOT_SUPPORTED,
>>        NEVER
>>  }
>> 
>> 
>>  The JTA specification would also define the semantics of the
>>  corresponding interceptor classes.  (Note that the classes themselves
>>  would not be defined, but left to the JTA implementation.)
>> 
>>  These transactional interceptors would then be applied using the
>>  standard CDI protocols.  They would be applicable to all CDI managed
>>  beans as well as to classes defined as managed beans by the Java EE
>>  specification such as servlets, JAX-RS resource classes, and JAX-WS
>>  service endpoints.
>> 
>> 
>>  There are a few open issues here that require consideration, e.g.:
>> 
>>  (1) Whether the "value" attribute of the 
> "Transactional" annotation
>>  should be binding or @NonBinding.  Note that this decision affects
>>  the number of interceptor classes that would need to be defined.
>> 
>>  (2) Interceptor ordering.  This is currently an open topic in the CDI
>>  expert group.  Presumably it would be desirable for 
> "system-level"
>>  interceptors such as transactional interceptors to be executed before
>>  user-defined "application-level" interceptors, but there needs to 
> be
>>  a mechanism to allow such orderings to be specified in a flexible way.
>> 
>> 
>>  We would like to get feedback on this proposed approach and the
>>  related issues from the group.  Other specleads should feel free to
>>  forward this message to their expert groups for further discussion, if
>>  relevant.
>> 
>>  thanks,
>> 
>>  -Linda
>> 
>> 
>> 
>> 
> 
> 
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/cdi-dev
> 



More information about the cdi-dev mailing list