[ 
https://issues.apache.org/jira/browse/BROOKLYN-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15987834#comment-15987834
 ] 

Aled Sage commented on BROOKLYN-156:
------------------------------------

The long-term solution is to delete the Java brooklyn-client, I think!

> 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.
> {noformat}
> [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
> {noformat}
> 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.15#6346)

Reply via email to