You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by "Aled Sage (JIRA)" <ji...@apache.org> on 2017/04/27 22:48:04 UTC

[jira] [Commented] (BROOKLYN-156) brooklyn-client project has horrendous dependency issues

    [ 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)