[ 
https://issues.apache.org/jira/browse/SYNAPSE-530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694239#action_12694239
 ] 

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]    org.apache.ws.commons.schema:XmlSchema:jar:1.4.3:compile
[WARNING]    xml-apis:xml-apis:jar:1.3.04:compile
[WARNING]    org.apache.ws.commons.axiom:axiom-impl:jar:1.2.8:compile
[WARNING]    wsdl4j:wsdl4j:jar:1.6.2:compile
[WARNING]    javax.mail:mail:jar:1.4:compile
[WARNING]    org.apache.ws.commons.axiom:axiom-api:jar:1.2.8: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]    org.apache.ws.commons.axiom:axiom-dom:jar:1.2.8: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: https://issues.apache.org/jira/browse/SYNAPSE-530
>             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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to