synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <>
Subject [jira] Commented: (SYNAPSE-530) Missing dependencies
Date Tue, 31 Mar 2009 19:58:50 GMT


Andreas Veithen commented on SYNAPSE-530:

I think what Jason tries to point out is that the code in core uses javax.activation and commons-codec,
but that these libraries are only present as transitive dependencies and not declared as direct
dependencies. BTW, here is the complete list calculated by mvn dependency:analyze: (I prefer
good old command line tools :-)

[WARNING] Used undeclared dependencies found:
[WARNING]    org.apache.axis2:axis2-transport-http:jar:1.0-SNAPSHOT:compile
[WARNING]    xml-apis:xml-apis:jar:1.3.04:compile
[WARNING]    wsdl4j:wsdl4j:jar:1.6.2:compile
[WARNING]    javax.mail:mail:jar:1.4:compile
[WARNING]    stax:stax-api:jar:1.0.1:compile
[WARNING]    commons-io:commons-io:jar:1.4:compile
[WARNING]    org.apache.geronimo.specs:geronimo-saaj_1.3_spec:jar:1.0.1:compile
[WARNING]    jaxen:jaxen:jar:1.1.1:compile
[WARNING]    org.apache.axis2:axis2-transport-base:jar:1.0-SNAPSHOT:compile
[WARNING]    commons-codec:commons-codec:jar:1.2:compile
[WARNING]    javax.activation:activation:jar:1.1:compile

There are indeed people who say that when you use a library in your code, you should always
declare it as (direct) dependency. I tend to partially disagree with this. Actually the two
libraries identified by Jason illustrate this very well:

* activation is a library that comes in as a transitive dependency through Axis2. The point
is that classes from activation appear in the Axis2 API. There is therefore no risk that activation
will ever disappear as a transitive dependency and the best solution is to let Axis2 choose
the incarnation (Sun or Geronimo) and version of that library. There is no point here to declare
this dependency explicitly on synapse-core.

* Things are different for commons-codec: probably the use of commons-codec in commons-httpclient
is not visible in the API and it could be very well that in a future version of httpclient
this dependency disappears. In that case it makes sense to say that if synapse-core uses classes
from commons-coded, it should declare that library as an explicit dependency.

> Missing dependencies
> --------------------
>                 Key: SYNAPSE-530
>                 URL:
>             Project: Synapse
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: NIGHTLY
>         Environment: Maven 2.0.8, Mac OS X Leopard, Apple JDK 5.0
>            Reporter: Jason Fager
>         Attachments: synapse-core dependency graph from within Eclipse POM-Editor.jpg
> Synapse core has dependencies on 
> javax.activation
> commons-codec
> But they aren't currently listed in the project's pom.xml.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message