Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ejb-dev] EJB 4.0 should not support the new Concurrency 3.0 annotations (from Jakarta EE 10), correct?

It has come to my attention that the new Concurrency 3.0 TCK for Jakarta EE 10 has placed a new feature requirement on Jakarta Enterprise Beans (EJB) 4.0... but it doesn't seem that a vendor should be required to support that since it is not part of the EJB 4.0 specification (which was Jakarta EE 9).

Specifically, Concurrency 3.0 adds the following new annotations:



  jakarta.enterprise.concurrent.ContextServiceDefinition
 jakarta.enterprise.concurrent.ManagedExecutorDefinition
 jakarta.enterprise.concurrent.ManagedScheduledExecutorDefinition
 jakarta.enterprise.concurrent.ManagedThreadFactoryDefinition

With the corresponding new elements in the Jakarta EE 10 platform schema (jakartaee_10.xsd)



  <context-service>
 <managed-executor>
 <managed-scheduled-executor>
 <managed-thread-factory>

Since none of these elements would be supported in the ejb-jar.xml file, it seems very inconsistent to then turn around and support the same function provided via the annotations.

The new XML DD elements were added in jakartaee_10.xsd, which should not be part of ejb-jar_4_0.xsd, since it must remain compatible with Jakarta EE 9, so should reference jakartaee_9.xsd.

Now, it appears that the Jakarta EE 10 platform work has accidentally updated the ejb-jar_4_0.xsd here:
https://github.com/eclipse-ee4j/jakartaee-schemas/blob/a0d2be5707011106d6531b5343668d737d13a0d6/xml/src/ejb-jar_4_0.xsds#L74

So, I've opened this issue to have that removed:

https://github.com/eclipse-ee4j/jakartaee-schemas/issues/34

Two different formats of the ejb-jar.xml schema should not exist, as it may result in EJB 4.0 applications that cannot be installed consistently on any EJB implementation server. This same issue may exist for other schemas as well, as EJB is not the only spec that is not providing a revision for Jakarta EE 10.

Does anyone disagree with my interpretation of the specifications here?  Should EJB 4.0 implementations be required to support these new Concurrency 3.0 annotations, despite the fact that the equivalent DD elements may not be specified in ejb-jar.xml?

Should we request that the Concurrency 3.0 TCK remove tests with these annotations on EJBs?

It would be perfectly fine to inject one of these resources into an EJB using @Resource (i.e. <resource-env-ref>), it just should not be possible to define one of them on an EJB using the *Definition annotations, since those don't exist in Jakarta EE 9.


There may be other issues that arise like this, as I believe both the Common Annotations and Interceptors specifications both have revisions for Jakarta EE 10, and the EJB 4.0 specification would not address any new features, since it would still reference the older levels of those specifications.  At the moment, I'm not aware of any specific problem though; this Concurrency 3.0 change is the first place I've seen an issue.


-- Tracy Burroughs (tkb@xxxxxxxxxx)
-- WebSphere Application Server Development
-- IBM Rochester,  Dept WG8A    H315/050-2
-- 2800 37th Street NW, Rochester MN 55901-4441




Back to the top