[jboss-dev] jboss-javaee.jar
Dimitris Andreadis
dandread at redhat.com
Wed Apr 9 13:39:56 EDT 2008
This has been partially discussed on the forums, but I want to get some wider consensus on
how to proceed, especially from the various jboss projects that consume/implement javax APIs:
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4139711#4139711
AFAIK, jboss-javaee.jar is supposed to serve as the authoritative javaEE API supported and
implemented by AS (JavaEE5 in our case). The .jar itself is made up by the individual
sub-apis listed here (e.g. jms, jacc, etc):
https://svn.jboss.org/repos/jbossas/projects/javaee/
However the way we have structured this is not consumable by individual projects (like WS or
Hibernate). We tag the whole thing, like 5.0.0.Beta3 or 5.0.0.Beta3Update1, while a project
may want to use/implement specifically, e.g. JMS 1.1
I think what we need is for the individual sub-apis to be independently versioned and
tagged. So the JMS API whould have versions 1.0, 1.1 and so on. The jboss project can then
use specific apis at arbitrary versions, without having duplicates in their own projects.
Then a higher level javaee project can import the set of APIs required to create the
aggregate JavaEE5 (or JavaEE6 and so on) apis.
A single JIRA project could be used to track all those updates.
One issue to consider is whether the aggregate jar will include the classes of the apis (in
which case you only need to ship the aggregate jar), or reference the external libraries in
its MANIFEST.MF.
The other issue is when compiling AS and importing the aggregate jboss-javaee.jar, make sure
that sub-api libraries that can be imported as transitive dependencies agree with the
versions chosen at the aggregate level, and if not flag that as an error.
I understand that the only way to do this is by using maven ranges ([ ]) on jboss-javaee.jar.
Any input on this is appreciated.
/D
More information about the jboss-development
mailing list