Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A1722200BF7 for ; Mon, 9 Jan 2017 17:30:00 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id A0202160B2F; Mon, 9 Jan 2017 16:30:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id CA482160B49 for ; Mon, 9 Jan 2017 17:29:59 +0100 (CET) Received: (qmail 21510 invoked by uid 500); 9 Jan 2017 16:29:58 -0000 Mailing-List: contact dev-help@brooklyn.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.apache.org Delivered-To: mailing list dev@brooklyn.apache.org Received: (qmail 21379 invoked by uid 99); 9 Jan 2017 16:29:58 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jan 2017 16:29:58 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 95CE02C1F56 for ; Mon, 9 Jan 2017 16:29:58 +0000 (UTC) Date: Mon, 9 Jan 2017 16:29:58 +0000 (UTC) From: "Svetoslav Neykov (JIRA)" To: dev@brooklyn.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (BROOKLYN-423) Upgrade cxf to 3.1.9 (in karaf) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 09 Jan 2017 16:30:00 -0000 [ https://issues.apache.org/jira/browse/BROOKLYN-423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15812170#comment-15812170 ] Svetoslav Neykov commented on BROOKLYN-423: ------------------------------------------- We should create a PR against jclouds to accept {{[1.1.0; 2.0]}} just as Brooklyn already does. Until that change trickles back to us reordering the bundle loading order could work so that swagger finds and prefers the {{2.0.1}} version. > Upgrade cxf to 3.1.9 (in karaf) > ------------------------------- > > Key: BROOKLYN-423 > URL: https://issues.apache.org/jira/browse/BROOKLYN-423 > Project: Brooklyn > Issue Type: Improvement > Affects Versions: 0.10.0 > Reporter: Aled Sage > Priority: Minor > > For why we want this, see https://github.com/cloudsoft/winrm4j/pull/44 (upgrading cxf to 3.1.9, and httpcomponents.httpclient to 4.5.2). > Also see https://github.com/apache/brooklyn-server/pull/362, which attempts to update httpcomponents' httpcore and httpclient. However, that breaks winrm4j if we don't also upgrade cxf (according to Svet's comment). > --- > However, cxf 3.1.9 pulls in {{javax.ws.rs;version=2.0.1}}, which causes jclouds to fail to start because that needs 1.1.0 >= version < 2.0.0. The 2.0.1 version comes from feature cxf-core, which depends on feature cxf-specs, which depends on bundle org.apache.servicemix.specs.jsr339-api-2.0.1 (bundle version 2.6.0, but exports {{javax.ws.rs;version=2.0.1}})). > The jclouds error is: > {noformat} > 2017-01-09 09:48:52,714 ERROR 40 o.a.k.s.s.ShellUtil [nsole user karaf] Exception caught while executing command > org.osgi.service.resolver.ResolutionException: Unable to resolve jclouds-core/2.0.0: missing requirement [jclouds-core/2.0.0] osgi.wiring.package; filter:="(&(osgi.wiring.package=javax.ws.rs)(version>=1.1.0)(!(version>=2.0.0)))" > at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42)[org.apache.felix.framework-5.4.0.jar:] > at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:404)[org.apache.felix.framework-5.4.0.jar:] > at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:158)[org.apache.felix.framework-5.4.0.jar:] > at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:216)[11:org.apache.karaf.features.core:4.0.4] > at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)[11:org.apache.karaf.features.core:4.0.4] > at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1089)[11:org.apache.karaf.features.core:4.0.4] > at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:985)[11:org.apache.karaf.features.core:4.0.4] > at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_111] > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_111] > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_111] > at java.lang.Thread.run(Thread.java:745)[:1.8.0_111] > {noformat} > Looking at Brooklyn 0.10.0, it does include both 1.x and 2.x of javax.ws.rs: > {noformat} > karaf@brooklyn()> package:exports | grep javax.ws.rs > ... > javax.ws.rs | 1.1.1 | 185 | org.apache.servicemix.bundles.jersey-core > javax.ws.rs | 2.0.0 | 194 | org.apache.servicemix.specs.jsr339-api-2.0 > {noformat} > --- > However, adding both bundle versions 1.1.1 and 2.0.1 gives the error shown below: > {noformat} > 2017-01-09 10:25:41,238 ERROR 40 o.a.k.s.s.ShellUtil [nsole user karaf] Exception caught while executing command > org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.apache.brooklyn.rest-resources [org.apache.brooklyn.rest-resources/0.11.0.SNAPSHOT] because it is exposed to package 'javax.ws. > rs' from resources javax.ws.rs-api [javax.ws.rs-api/2.0.1] and org.apache.servicemix.specs.jsr311-api-1.1.1 [org.apache.servicemix.specs.jsr311-api-1.1.1/2.7.0] via two dependency chains. > Chain 1: > org.apache.brooklyn.rest-resources [org.apache.brooklyn.rest-resources/0.11.0.SNAPSHOT] > import: (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0))) > | > export: osgi.wiring.package: javax.ws.rs > javax.ws.rs-api [javax.ws.rs-api/2.0.1] > Chain 2: > org.apache.brooklyn.rest-resources [org.apache.brooklyn.rest-resources/0.11.0.SNAPSHOT] > import: (&(osgi.wiring.package=io.swagger.jaxrs.listing)(version>=1.5.0)(!(version>=2.0.0))) > | > export: osgi.wiring.package=io.swagger.jaxrs.listing; uses:=javax.ws.rs > io.swagger.jaxrs [io.swagger.jaxrs/1.5.6] > import: (&(osgi.wiring.package=javax.ws.rs)(version>=1.1.0)(!(version>=3.0.0))) > | > export: osgi.wiring.package: javax.ws.rs > org.apache.servicemix.specs.jsr311-api-1.1.1 [org.apache.servicemix.specs.jsr311-api-1.1.1/2.7.0] > {noformat} > This is because brooklyn-rest-api pom.xml explicitly adds the OSGi import {{javax.ws.rs;version="[1.1,2.0]}}, with the commit (6f624c78b1e7fe72c6df1ecd297b922721b2c023) comment: > {noformat} > There is no standard JAX-RS way to process multipart/form-data contents, > so this service was removed from the API for the purpose of unifying the > CXF and Jersey API. > > * Adjust OSGi package import directives to allow a version range of 1.1 to > 2.0 of JAX-RS directives. > {noformat} > --- > Removing that from the pom (so brooklyn-rest-api depends on {{javax.ws.rs;version="[2.0,3)"}}), it seems to work (without having tested any api calls that require multipart/form-data). > However, it refreshes cxf core (and thus many other bundles) because of: > {noformat} > 2017-01-09 11:31:43,748 INFO 11 o.a.k.f.i.s.FeaturesServiceImpl [pool-14-thread-1] org.apache.httpcomponents.httpasyncclient/4.1.2 (Attached fragments changed: [org.apache.brooklyn.karaf-httpcomponents-extension/0.11.0.SNAPSHO > T]) > {noformat} > The only purpose of https://github.com/apache/brooklyn-server/blob/master/karaf/httpcomponent-extension/pom.xml is to work around a bu in the httpasyncclient OSGi bundle (as described in the commit message below): > {noformat} > commit 470dda2ced543bf68f4ae931c5c7090a08d799f3 > Author: Svetoslav Neykov > Date: Wed Aug 31 19:33:20 2016 +0300 > Fix winrm4j in Karaf > > winrm4j version update has fixed for OSGi. Also adding an extension bundle to httpcomponents-asyncclient so that it's able to see org.apache.http.ssl package (that's fixed in later revision releases of the jar). > {noformat} > This leads us back to https://github.com/apache/brooklyn-server/pull/362, which attempts to bump the httpclient and httpcore versions to 4.5.2 and 4.4.5 respectively. If we also update httpasyncclient then we shouldn't need that. -- This message was sent by Atlassian JIRA (v6.3.4#6332)