brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Downer (JIRA)" <j...@apache.org>
Subject [jira] [Created] (BROOKLYN-156) brooklyn-client project has horrendous dependency issues
Date Thu, 30 Jul 2015 16:43:04 GMT
Richard Downer created BROOKLYN-156:
---------------------------------------

             Summary: brooklyn-client project has horrendous dependency issues
                 Key: BROOKLYN-156
                 URL: https://issues.apache.org/jira/browse/BROOKLYN-156
             Project: Brooklyn
          Issue Type: Bug
    Affects Versions: 0.7.0, 0.8.0
            Reporter: Richard Downer


`brooklyn-client` allows third-party Java code to make API calls to Brooklyn. However it is
very difficult to use as it carries with it a huge set of transitive dependencies, which has
the effect of enforcing policy on downstream consumers of Brooklyn. Worse still, some of its
dependencies conflict with each other, which can cause runtime failures.

[INFO] org.apache.brooklyn:brooklyn-rest-client:jar:0.8.0-SNAPSHOT
[INFO] +- org.apache.brooklyn:brooklyn-rest-api:jar:0.8.0-SNAPSHOT:compile
[INFO] |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] |  +- com.sun.jersey.contribs:jersey-multipart:jar:1.18.1:compile
[INFO] |  |  \- org.jvnet.mimepull:mimepull:jar:1.9.3:compile
[INFO] |  +- javax.validation:validation-api:jar:1.0.0.GA:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:2.0.1:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.4:compile
[INFO] |  +- com.wordnik:swagger-core_2.9.1:jar:1.0.1:compile
[INFO] |  +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile
[INFO] |  +- org.apache.brooklyn:brooklyn-utils-common:jar:0.8.0-SNAPSHOT:compile
[INFO] |  |  +- ch.qos.logback:logback-classic:jar:1.0.7:compile
[INFO] |  |  |  \- ch.qos.logback:logback-core:jar:1.0.7:compile
[INFO] |  |  +- org.slf4j:jul-to-slf4j:jar:1.6.6:compile
[INFO] |  |  \- org.apache.brooklyn:brooklyn-logback-includes:jar:0.8.0-SNAPSHOT:compile
[INFO] |  \- org.apache.brooklyn:brooklyn-utils-rest-swagger:jar:0.8.0-SNAPSHOT:compile
[INFO] |     \- com.wordnik:swagger-jaxrs_2.9.1:jar:1.0.1:compile
[INFO] |        \- org.scala-lang:scala-library:jar:2.9.1-1:compile
[INFO] +- org.apache.brooklyn:brooklyn-api:jar:0.8.0-SNAPSHOT:compile
[INFO] +- org.jboss.resteasy:resteasy-jaxrs:jar:3.0.8.Final:compile
[INFO] |  +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec:jar:1.0.1.Final:compile
[INFO] |  +- javax.activation:activation:jar:1.1:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.4.1:compile
[INFO] |  +- commons-io:commons-io:jar:2.4:compile
[INFO] |  \- net.jcip:jcip-annotations:jar:1.0:compile
[INFO] +- org.jboss.resteasy:resteasy-jackson-provider:jar:3.0.8.Final:compile
[INFO] +- org.jboss.resteasy:jaxrs-api:jar:3.0.8.Final:compile
[INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
[INFO] +- org.codehaus.jackson:jackson-xc:jar:1.9.13:compile
[INFO] +- com.sun.jersey:jersey-core:jar:1.18.1:compile
[INFO] +- org.eclipse.jetty:jetty-webapp:jar:8.1.17.v20150415:compile
[INFO] |  +- org.eclipse.jetty:jetty-xml:jar:8.1.17.v20150415:compile
[INFO] |  |  \- org.eclipse.jetty:jetty-util:jar:8.1.17.v20150415:compile
[INFO] |  \- org.eclipse.jetty:jetty-servlet:jar:8.1.17.v20150415:compile
[INFO] |     \- org.eclipse.jetty:jetty-security:jar:8.1.17.v20150415:compile
[INFO] +- org.eclipse.jetty:jetty-server:jar:8.1.17.v20150415:compile
[INFO] |  +- org.eclipse.jetty:jetty-continuation:jar:8.1.17.v20150415:compile
[INFO] |  \- org.eclipse.jetty:jetty-http:jar:8.1.17.v20150415:compile
[INFO] |     \- org.eclipse.jetty:jetty-io:jar:8.1.17.v20150415:compile
[INFO] +- com.google.guava:guava:jar:17.0:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.6.6:compile
[INFO] +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] +- com.google.code.gson:gson:jar:2.3:compile

Some examples of problems here:

  * These dependencies contain within them conflicting implementations of the javax.ws classes.
This is a major problem which causes runtime errors if the "wrong" version ends up at the
front of the classpath.
  * It is bringing in Jetty, a web server
  * It depends on some Jersey components. If the downstream project is also using Jersey,
then it must use the same version. Similar issues exist for Jackson, SLF4J, Jetty and others.
  * It brings in logback. If the downstream project is using SLF4J, it is forced to use logback
as an implementation.

brooklyn-client needs to be *much* lighter than it currently is, it must not contain conflicting
dependencies, and it should have as small a dependency footprint as possible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message