ejb-spec
  1. ejb-spec
  2. EJB_SPEC-4

Decoupling the @Lock/@AccessTimeout annotations from the EJB component model

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 3.2
    • Fix Version/s: Future version
    • Labels:
      None

      Description

      Currently the EJB @Lock/@AccessTimeout annotations can only be used with @Singleton beans (@AccessTimeout can also be used with @Stateful). The @Lock/@AccessTimeout annotations are actually a very useful and elegant way of declaratively managing component concurrency. With the introduction of managed beans and CDI, there are not many good technical reasons why the @Lock/@AccessTimeout annotations should not be used in managed beans as well. Decoupling useful EJB services such as @Lock/@AccessTimeout from the component model moves towards removing one-off component models in Java EE in favor of unifying around managed beans/CDI.

      We currently allow this capability in Resin. The code looks like this:

      @ApplicationScoped
      public class MyConcurrentBean {
      ...
      @Lock(READ)
      @AccessTimeout(...)
      public void myReadLockedTask()

      { ... }
      ...
      @Lock(WRITE)
      @AccessTimeout(...)
      public void myWriteLockedTask() { ... }

      ...
      }

      It should also be possible to use @Lock/@AccessTimeout in CDI stereotypes so that developers can compose custom component types to meet the needs of their individual applications. The code for this could look like the following:

      @ApplicationScoped
      @Stereotype
      @Retention(RUNTIME)
      @Target(TYPE)
      @Lock
      @AccessTimeout(...)
      public @interface ConcurrentComponent {}

        Activity

        Hide
        reza_rahman added a comment -

        One logical place for decoupled @Lock/@AccessTimeout annotations could be the Java EE concurrency utilities.

        Show
        reza_rahman added a comment - One logical place for decoupled @Lock/@AccessTimeout annotations could be the Java EE concurrency utilities.

          People

          • Assignee:
            marina vatkina
            Reporter:
            reza_rahman
          • Votes:
            11 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated: