[jboss-dev] Overlapping APIs jars

Carlo de Wolf cdewolf at redhat.com
Tue Nov 11 06:06:19 EST 2008


I blame Maven (of course  :-P  ).

Originally the intend of the javaee project was to centralize all APIs, 
so people can use one simple artifact which represents JavaEE 5.
This makes it easy for both end-users and an EAP configuration. Problems 
have arising with this approach in the JBossWS and Hibernate area. For 
JBossWS we're one step ahead, for Hibernate it would introduce an 
'outside' dependency. The same problem I have with EJB 3.1, so now we 
also have jboss-ejb3-api 3.1.0-SNAPSHOT.

It all boils down to software configuration management within AS itself. 
For this purpose Maven is clearly inadequate. Where I to put this in 
Debian package I would have a lot of different packages providing 
servlet-api-2.5 and let aptitude sort it out. This would also allow me 
upgrade to another API without affecting other installed components. So 
if I where to install javax.servlet-2.5, it would result in a conflict 
with jboss-javaee-5.0 thus it would provide me with an alternative to 
un-install jboss-javaee-5.0 and install all individual APIs (thus 
providing me a fine grained upgrade path). (Note that yum is too limited 
for these scenarios.)

So what I really need is proper software configuration management.

For the product we want jboss-javaee-5.0 to be authoritative, so exclude 
all others.

Carlo

Dimitris Andreadis wrote:
> There is a bit of overlapping in our API libraries.
>
> E.g. for jsp-api.jar we have 2 jars with similar content, one from 
> JBossWeb and one coming
> from Sun:
>
> [INFO] +- jboss.web:jsp-api:jar:2.1.1.GA:compile
> [INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:compile
>
> For the servlet-api.jar we have 3 jars with similar content. One comes 
> from our javaee apis
> project, one from jboss web and one from Sun. 
> org.jboss.javaee:jboss-javaee.jar also bundles
> jboss-servlet-api.jar:
>
> [INFO] +- org.jboss.javaee:jboss-servlet-api:jar:2.5.0.GA:compile
> [INFO] +- jboss.web:servlet-api:jar:2.1.1.GA:compile
> [INFO] +- javax.servlet:servlet-api:jar:2.5:compile
>
> The sun one is referenced by:
> [INFO] +- 
> org.jboss.seam.integration:jboss-seam-int-jbossas:jar:5.0.0.CR7:compile
> [INFO] |  \- (javax.servlet:servlet-api:jar:2.5:compile - version 
> managed from 2.4
> ...
> [INFO] +- httpunit:httpunit:jar:1.6:test
> [INFO] |  +- (javax.servlet:servlet-api:jar:2.5:test - version managed 
> from 2.3
> ...
> [INFO] +- org.jboss.jaxr:juddi-saaj:jar:1.2.1.GA:compile
> [INFO] |  \- (javax.servlet:servlet-api:jar:2.5:compile - version 
> managed from 2.4
> ...
> [INFO] +- org.jboss.jaxr:juddi-service:jboss-sar:1.2.1.GA:compile
> [INFO] |  \- (javax.servlet:servlet-api:jar:2.5:compile - version 
> managed from 2.4;
>
> Our org.jboss.javaee one by EJB3.
>
> What ends up in AS5 is the jsp-api/server-api that comes from 
> JBossWeb. Also the
> jboss-javaee.jar that duplicates the server api classes.
>
> ---
>
> So the question is how we want to proceed? I think we should end up 
> with a single copy of
> the apis. We could either agree to:
>
> a) Use the sun provided artifacts. If there are no license problems 
> that would be the
> easiest solution. Many thirdparty project would be referencing those 
> artifacts, too.
>
> b) Centralize the apis in our javaee project. The problem here is that 
> projects like JBossWS, JBossWeb, Hibernate, would have to agree to use 
> only those artifacts, rather than
> duplicating them, or removing them and importing them into their 
> projects.
>
> c) Continue the current mixed solution with projects controling the 
> related APIs, in which
> case we should at least remove any duplicates, e.g. the jboss-javaee 
> servlet APIs.
>
> Thoughts?
>
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development




More information about the jboss-development mailing list