This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit d766cfe59b1b121795f3036431c2352335f86c6d Author: Alex Heneveld <[email protected]> AuthorDate: Wed Nov 17 12:30:39 2021 +0000 fix kubernetes osgi import, fix osgi package confusion, tidy features declare fewer things as dependency=true to speed up startup and make things (eg guava) available when needed; some things still declared as dependency=true are needed to prevent confusion though also take care to minimize confusion of packages vis-a-vis javax.annotation, ws, and rs-api seems to be working! --- core/pom.xml | 5 +- karaf/features/src/main/feature/feature.xml | 266 ++++++++++++++++------------ pom.xml | 2 +- 3 files changed, 153 insertions(+), 120 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 234746d..65cda35 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -58,6 +58,10 @@ <version>${project.version}</version> </dependency> <dependency> + <groupId>jakarta.annotation</groupId> + <artifactId>jakarta.annotation-api</artifactId> <!-- for javax.annotation.Nullable etc; declare here, and a few places, to help bnd get the right package version --> + </dependency> + <dependency> <groupId>com.hierynomus</groupId> <artifactId>sshj</artifactId> <exclusions> @@ -296,7 +300,6 @@ <Import-Package> !org.apache.brooklyn.rt.felix, !org.apache.felix.framework, - javax.annotation;version="[1.2,2)", * </Import-Package> </instructions> diff --git a/karaf/features/src/main/feature/feature.xml b/karaf/features/src/main/feature/feature.xml index 0466a82..48fd9fa 100644 --- a/karaf/features/src/main/feature/feature.xml +++ b/karaf/features/src/main/feature/feature.xml @@ -26,50 +26,52 @@ <repository>mvn:io.fabric8.kubernetes/kubernetes-karaf/${kubernetes-client.version}/xml/features</repository> <feature name="swagger" version="${swagger.version}" description="Swagger Annotations+Core+JAXRS+Models"> - <bundle dependency='true'>mvn:com.google.guava/guava/${guava-swagger.version}</bundle> - <bundle dependency='true'>mvn:com.google.guava/failureaccess/${failureaccess.version}</bundle> + <bundle>mvn:com.google.guava/guava/${guava-swagger.version}</bundle> + <bundle>mvn:com.google.guava/failureaccess/${failureaccess.version}</bundle> <bundle>mvn:io.swagger/swagger-annotations/${swagger.version}</bundle> <bundle>wrap:mvn:io.swagger/swagger-core/${swagger.version}</bundle> <bundle>wrap:mvn:io.swagger/swagger-jaxrs/${swagger.version}</bundle> <bundle>mvn:io.swagger/swagger-models/${swagger.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}</bundle> </feature> - <feature name="brooklyn-essential-deps" version="${project.version}" description="Brooklyn Common Utils"> - <bundle dependency="true">mvn:jakarta.annotation/jakarta.annotation-api/${jakarta.annotation-api.version}</bundle> + <feature name="brooklyn-essential-deps" version="${project.version}" description="Brooklyn Essential Dependencies, to load early"> + <bundle>mvn:jakarta.annotation/jakarta.annotation-api/${jakarta.annotation-api.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}</bundle> - <bundle dependency="true">mvn:org.slf4j/jul-to-slf4j/${slf4j.version}</bundle> - <bundle dependency="true">mvn:ch.qos.logback/logback-classic/${logback.version}</bundle> - <bundle dependency="true">mvn:ch.qos.logback/logback-core/${logback.version}</bundle> + <bundle>mvn:org.slf4j/jul-to-slf4j/${slf4j.version}</bundle> + <bundle>mvn:ch.qos.logback/logback-classic/${logback.version}</bundle> + <bundle>mvn:ch.qos.logback/logback-core/${logback.version}</bundle> - <bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle> - <bundle dependency="true">mvn:org.codehaus.groovy/groovy-all/${groovy.version}</bundle> - <bundle dependency="true">mvn:commons-io/commons-io/${commons-io.version}</bundle> - <bundle dependency="true">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle> - <bundle dependency="true">mvn:org.yaml/snakeyaml/${snakeyaml.version}</bundle> + <bundle>mvn:com.google.guava/failureaccess/${failureaccess.version}</bundle> + <bundle>mvn:com.google.guava/guava/${guava.version}</bundle> + <bundle>mvn:org.codehaus.groovy/groovy-all/${groovy.version}</bundle> + <bundle>mvn:commons-io/commons-io/${commons-io.version}</bundle> + <bundle>mvn:commons-codec/commons-codec/${commons-codec.version}</bundle> + <bundle>mvn:org.yaml/snakeyaml/${snakeyaml.version}</bundle> - <bundle dependency="true">mvn:org.apache.httpcomponents/httpcore-osgi/${httpcomponents.httpcore.version}</bundle> - <bundle dependency="true">mvn:org.apache.httpcomponents/httpclient-osgi/${httpcomponents.httpclient.version}</bundle> + <bundle>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcomponents.httpcore.version}</bundle> + <bundle>mvn:org.apache.httpcomponents/httpclient-osgi/${httpcomponents.httpclient.version}</bundle> <feature prerequisite="true">wrap</feature> - <bundle dependency="true">mvn:org.bouncycastle/bcprov-ext-jdk15on/${bouncycastle.version}</bundle> - <bundle dependency="true">mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle.version}</bundle> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}</bundle> + <bundle>mvn:org.bouncycastle/bcprov-ext-jdk15on/${bouncycastle.version}</bundle> + <bundle>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}</bundle> <!-- wrapped to import and export eddsa.math subpackage which sshj seems to need to compare equality on the Curve class; i can't tell what magic made this work in the past; sshj in Ed25519PublicKey does a `xxx.getCurve().equals(yyy.getCurve())`, so doesn't need to import it, but with OSGi we get a NoClassDefFound if we don't export that package from eddsa then import it into sshj :( --> -<!-- <bundle dependency="true">mvn:net.i2p.crypto/eddsa/${eddsa.version}</bundle>--> -<!-- <bundle dependency="true">mvn:com.hierynomus/sshj/${sshj.version}</bundle>--> - <bundle dependency="true">wrap:mvn:net.i2p.crypto/eddsa/${eddsa.version}$overwrite=merge&Bundle-SymbolicName=net.i2p.crypto.eddsa_wrapped&Bundle-Version=${eddsa.version}&Export-Package=*;version="${eddsa.version}"</bundle> - <bundle dependency="true">wrap:mvn:com.hierynomus/sshj/${sshj.version}$overwrite=merge&Bundle-SymbolicName=com.hierynomus.sshj_wrapped&Bundle-Version=${sshj.version}&Import-Package=net.i2p.crypto.eddsa.math,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,net.i2p.crypto.eddsa;version="[0.2,1)",net.i2p.crypto.eddsa.spec;version="[0.2,1)",com.jcraft.jzlib;version="[1.1,2)";resolution:=optional,org.slf4j;version="[1.7,5)",org.bouncycastle.asn1;resolution:=optional; [...] +<!-- <bundle>mvn:net.i2p.crypto/eddsa/${eddsa.version}</bundle>--> +<!-- <bundle>mvn:com.hierynomus/sshj/${sshj.version}</bundle>--> + <bundle>wrap:mvn:net.i2p.crypto/eddsa/${eddsa.version}$overwrite=merge&Bundle-SymbolicName=net.i2p.crypto.eddsa_wrapped&Bundle-Version=${eddsa.version}&Export-Package=*;version="${eddsa.version}"</bundle> + <bundle>wrap:mvn:com.hierynomus/sshj/${sshj.version}$overwrite=merge&Bundle-SymbolicName=com.hierynomus.sshj_wrapped&Bundle-Version=${sshj.version}&Import-Package=net.i2p.crypto.eddsa.math,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,net.i2p.crypto.eddsa;version="[0.2,1)",net.i2p.crypto.eddsa.spec;version="[0.2,1)",com.jcraft.jzlib;version="[1.1,2)";resolution:=optional,org.slf4j;version="[1.7,5)",org.bouncycastle.asn1;resolution:=optional;version="[1.60,2)" [...] </feature> @@ -91,12 +93,11 @@ <bundle>mvn:org.apache.brooklyn/brooklyn-utils-rest-swagger/${project.version}</bundle> - <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle> + <bundle>mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle> <bundle dependency="true">mvn:javax.ws.rs/javax.ws.rs-api/${jax-rs-api.version}</bundle> - <!-- TODO: version 1.1.0.Final has OSGi manifest; check if upgrade doesn't get rid of wrap --> - <bundle dependency="true">wrap:mvn:javax.validation/validation-api/${validation-api.version}</bundle> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections.bundle.version}</bundle> + <bundle>wrap:mvn:javax.validation/validation-api/${validation-api.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections.bundle.version}</bundle> </feature> <feature name="brooklyn-rest-api" version="${project.version}" description="Brooklyn REST API"> @@ -107,16 +108,16 @@ <bundle>mvn:org.apache.brooklyn/brooklyn-rest-api/${project.version}</bundle> <bundle dependency="true">mvn:org.jvnet.mimepull/mimepull/1.9.3</bundle> - <bundle dependency="true">mvn:commons-lang/commons-lang/${commons-lang.version}</bundle> + <bundle>mvn:commons-lang/commons-lang/${commons-lang.version}</bundle> <!-- TODO: version 1.1.0.Final has OSGi manifest; check if upgrade doesn't get rid of wrap --> <bundle dependency="true">wrap:mvn:javax.validation/validation-api/${validation-api.version}</bundle> - <bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> + <bundle>mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> - <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle> + <bundle>mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle> </feature> <!-- @@ -126,7 +127,7 @@ <bundle>mvn:org.apache.brooklyn/brooklyn-rest-client/${project.version}</bundle> - <bundle dependency="true">mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient.version}</bundle> + <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient.version}</bundle> <bundle dependency='true'>mvn:commons-logging/commons-logging/${commons-logging.version}</bundle> <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec.version}</bundle> @@ -158,54 +159,55 @@ <bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle> <bundle>mvn:org.apache.brooklyn/brooklyn-utils-groovy/${project.version}</bundle> - <bundle dependency="true">mvn:com.google.code.gson/gson/${gson.version}</bundle> - <bundle dependency="true">mvn:com.jayway.jsonpath/json-path/${jsonPath.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.google.code.gson/gson/${gson.version}</bundle> + <bundle>mvn:com.jayway.jsonpath/json-path/${jsonPath.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle> - <bundle dependency="true">mvn:net.minidev/json-smart/${jsonSmart.version}</bundle> - <bundle dependency="true">mvn:net.minidev/accessors-smart/${minidev.accessors-smart.version}</bundle> + <bundle>mvn:net.minidev/json-smart/${jsonSmart.version}</bundle> + <bundle>mvn:net.minidev/accessors-smart/${minidev.accessors-smart.version}</bundle> <!-- we need a really old one for json-path; later ones are wanted by pax and aries --> - <bundle dependency="true">mvn:org.ow2.asm/asm/${ow2.asm.version.jsonpath}</bundle> - <bundle dependency="true">mvn:org.ow2.asm/asm-commons/${ow2.asm.version.jsonpath}</bundle> - <bundle dependency="true">mvn:org.ow2.asm/asm-tree/${ow2.asm.version.jsonpath}</bundle> - <bundle dependency="true">mvn:org.ow2.asm/asm-analysis/${ow2.asm.version.jsonpath}</bundle> - <bundle dependency="true">mvn:org.ow2.asm/asm-util/${ow2.asm.version.jsonpath}</bundle> - - <bundle dependency="true">mvn:org.ops4j.pax.web/pax-web-spi/${pax-web.version}</bundle> - <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/${geronimo-ws-metadata_2.0_spec.version}</bundle> - <bundle dependency="true">mvn:com.thoughtworks.xstream/xstream/${xstream.version}</bundle> - <bundle dependency="true">mvn:org.freemarker/freemarker/${freemarker.version}</bundle> - - <bundle dependency="true">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle> - <bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3.servicemix.version}</bundle> <!-- from com.thoughtworks.xstream/xstream --> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kxml2/${kxml2.servicemix.version}</bundle> + <bundle>mvn:org.ow2.asm/asm/${ow2.asm.version.jsonpath}</bundle> + <bundle>mvn:org.ow2.asm/asm-commons/${ow2.asm.version.jsonpath}</bundle> + <bundle>mvn:org.ow2.asm/asm-tree/${ow2.asm.version.jsonpath}</bundle> + <bundle>mvn:org.ow2.asm/asm-analysis/${ow2.asm.version.jsonpath}</bundle> + <bundle>mvn:org.ow2.asm/asm-util/${ow2.asm.version.jsonpath}</bundle> + + <bundle>mvn:org.ops4j.pax.web/pax-web-spi/${pax-web.version}</bundle> + <bundle>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/${geronimo-ws-metadata_2.0_spec.version}</bundle> + <bundle>mvn:com.thoughtworks.xstream/xstream/${xstream.version}</bundle> + <bundle>mvn:org.freemarker/freemarker/${freemarker.version}</bundle> + + <bundle>mvn:commons-codec/commons-codec/${commons-codec.version}</bundle> + <bundle>mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3.servicemix.version}</bundle> <!-- from com.thoughtworks.xstream/xstream --> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kxml2/${kxml2.servicemix.version}</bundle> <!-- TODO: don't use wrap --> - <bundle dependency="true">wrap:mvn:com.maxmind.geoip2/geoip2/${maxmind.version}</bundle> <!-- from geoip2 --> - <bundle dependency="true">wrap:mvn:com.maxmind.db/maxmind-db/${maxmind-db.version}</bundle> + <bundle>wrap:mvn:com.maxmind.geoip2/geoip2/${maxmind.version}</bundle> <!-- from geoip2 --> + <bundle>wrap:mvn:com.maxmind.db/maxmind-db/${maxmind-db.version}</bundle> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections.bundle.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections.bundle.version}</bundle> </feature> <feature name="brooklyn-camp-brooklyn" version="${project.version}" description="Brooklyn CAMP REST API"> - <bundle>mvn:org.apache.brooklyn/brooklyn-camp/${project.version}</bundle> + <bundle>mvn:commons-beanutils/commons-beanutils/${commons-beanutils.version}</bundle> + <bundle>mvn:commons-collections/commons-collections/${commons-collections.version}</bundle> <feature>brooklyn-core</feature> <feature>brooklyn-camp-base</feature> - <bundle dependency="true">mvn:commons-beanutils/commons-beanutils/${commons-beanutils.version}</bundle> - <bundle dependency="true">mvn:commons-collections/commons-collections/${commons-collections.version}</bundle> + + <bundle>mvn:org.apache.brooklyn/brooklyn-camp/${project.version}</bundle> </feature> <feature name="brooklyn-camp-base" version="${project.version}" description="Brooklyn CAMP Base"> <bundle>mvn:org.apache.brooklyn.camp/camp-base/${project.version}</bundle> <feature>brooklyn-utils-common</feature> - <bundle dependency="true">mvn:org.apache.commons/commons-compress/${commons-compress.version}</bundle> - <bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> + <bundle>mvn:org.apache.commons/commons-compress/${commons-compress.version}</bundle> + <bundle>mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle> </feature> <!-- @@ -229,7 +231,7 @@ <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/${cxf.version}</bundle> <bundle dependency="true">mvn:org.apache.cxf.karaf/cxf-karaf-commands/${cxf.version}</bundle> - <bundle dependency="true">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}</bundle> <!-- should be deps of jax-rs-2.0 rest-api project --> <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle> @@ -254,15 +256,15 @@ </feature> <feature name="brooklyn-commands" version="${project.version}" description="Brooklyn Shell Commands"> - <bundle dependency="true">mvn:org.apache.brooklyn/brooklyn-launcher-common/${project.version}</bundle> + <bundle>mvn:org.apache.brooklyn/brooklyn-launcher-common/${project.version}</bundle> <bundle>mvn:org.apache.brooklyn/brooklyn-commands/${project.version}</bundle> </feature> <feature name="brooklyn-software-winrm" version="${project.version}" description="Brooklyn WinRM Software Entities"> <bundle>mvn:org.apache.brooklyn/brooklyn-software-winrm/${project.version}</bundle> <feature>brooklyn-core</feature> - <bundle dependency="true">mvn:io.cloudsoft.windows/winrm4j/${winrm4j.version}</bundle> - <bundle dependency="true">mvn:io.cloudsoft.windows/winrm4j-client/${winrm4j.version}</bundle> + <bundle>mvn:io.cloudsoft.windows/winrm4j/${winrm4j.version}</bundle> + <bundle>mvn:io.cloudsoft.windows/winrm4j-client/${winrm4j.version}</bundle> <bundle>mvn:org.apache.brooklyn/brooklyn-karaf-httpcomponents-extension/${project.version}</bundle> <feature>cxf-jaxws</feature> <feature>cxf-http-async</feature> @@ -275,8 +277,9 @@ </feature> <feature name="brooklyn-software-base" version="${project.version}" description="Brooklyn Software Base"> + <feature prerequisite="true">brooklyn-essential-deps</feature> <bundle>mvn:org.apache.brooklyn/brooklyn-software-base/${project.version}</bundle> - <bundle dependency="true">wrap:mvn:org.glassfish.external/opendmk_jmxremote_optional_jar/${opendmk_jmxremote_optional_jar.version}$Import-Package=javax.management.openmbean,*</bundle> + <bundle>wrap:mvn:org.glassfish.external/opendmk_jmxremote_optional_jar/${opendmk_jmxremote_optional_jar.version}$Import-Package=javax.management.openmbean,*</bundle> <feature>brooklyn-software-winrm</feature> <feature>brooklyn-policy</feature> </feature> @@ -302,36 +305,38 @@ <feature name="jclouds-feature-brooklyn" version="${project.version}" description="Jclouds and Dependencies"> <!-- upstreams which seem needed --> - <bundle dependency='true'>wrap:mvn:com.squareup.okio/okio/1.15.0$Bundle-SymbolicName=squareup-okio&Bundle-Version=1.15.0&Export-Package=okio;version=1.15.0</bundle> - <!-- (3) --> - <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&Bundle-Version=3.12.6&Import-Package=okio;version=1.15,*;resolution:=optional</bundle> - <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/logging-interceptor/3.12.6$Bundle-SymbolicName=squareup-okhttp3-logging-interceptor&Bundle-Version=3.12.6&Import-Package=*;resolution:=mandatory</bundle> + <!-- prefer the wapped ones as the servicemix ones re-export too much; they need wrapping because they define bundle manifest version 1 --> + <!-- note fabric8/kubernetes pulls servicemix ones so need to be excluded; note servicemix okhttp includes logging interceptors --> + <bundle>wrap:mvn:com.squareup.okio/okio/1.15.0$Bundle-SymbolicName=squareup-okio&Bundle-Version=1.15.0&Export-Package=okio;version=1.15.0</bundle> + <!-- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.15.0_1</bundle> --> + <bundle>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&Bundle-Version=3.12.6&Import-Package=okio;version=1.15,*;resolution:=optional</bundle> + <bundle>wrap:mvn:com.squareup.okhttp3/logging-interceptor/3.12.6$Bundle-SymbolicName=squareup-okhttp3-logging-interceptor&Bundle-Version=3.12.6&Import-Package=*;resolution:=mandatory</bundle> + <!-- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}</bundle> --> <!-- see note in dist; complements javax.annotation --> + <!-- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.12.1_1</bundle> --> <!-- note this is okhttp3 --> <!-- upstream dependencies, needed --> - <bundle dependency='true'>mvn:com.google.inject/guice/${guice.version}</bundle> - <bundle dependency='true'>mvn:com.google.inject.extensions/guice-assistedinject/${guice.version}</bundle> - <bundle dependency='true'>mvn:com.google.inject.extensions/guice-multibindings/${guice.version}</bundle> - <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson.version}</bundle> - <bundle dependency='true'>mvn:com.google.guava/guava/${guava.version}</bundle> - - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch.bundle.version}</bundle> - <!-- <bundle dependency='true'>mvn:org.apache.jclouds.karaf.bundles/jsch-agentproxy-jsch/${project.version}</bundle> --> - <bundle dependency='true'>mvn:com.jcraft/jsch.agentproxy.core/${jsch.agentproxy.version}</bundle> - <bundle dependency='true'>mvn:com.jcraft/jsch.agentproxy.connector-factory/${jsch.agentproxy.version}</bundle> - <bundle dependency='true'>mvn:com.jcraft/jsch.agentproxy.usocket-nc/${jsch.agentproxy.version}</bundle> - <bundle dependency='true'>mvn:com.jcraft/jsch.agentproxy.sshagent/${jsch.agentproxy.version}</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}</bundle> - <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch-agentproxy-sshj/${jsch.agentproxy.bundle.version}</bundle> + <bundle dependency="true">mvn:com.google.inject/guice/${guice.version}</bundle> + <bundle dependency="true">mvn:com.google.inject.extensions/guice-assistedinject/${guice.version}</bundle> + <bundle dependency="true">mvn:com.google.inject.extensions/guice-multibindings/${guice.version}</bundle> + <bundle>mvn:com.google.code.gson/gson/${gson.version}</bundle> + <bundle>mvn:com.google.guava/guava/${guava.version}</bundle> + + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch.bundle.version}</bundle> + <!-- <bundle>mvn:org.apache.jclouds.karaf.bundles/jsch-agentproxy-jsch/${project.version}</bundle> --> + <bundle>mvn:com.jcraft/jsch.agentproxy.core/${jsch.agentproxy.version}</bundle> + <bundle>mvn:com.jcraft/jsch.agentproxy.connector-factory/${jsch.agentproxy.version}</bundle> + <bundle>mvn:com.jcraft/jsch.agentproxy.usocket-nc/${jsch.agentproxy.version}</bundle> + <bundle>mvn:com.jcraft/jsch.agentproxy.sshagent/${jsch.agentproxy.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch-agentproxy-sshj/${jsch.agentproxy.bundle.version}</bundle> <!-- upstream dependencies, maybe not needed --> <bundle dependency="true">mvn:javax.ws.rs/javax.ws.rs-api/${jax-rs-api.version}</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_1</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_5</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oauth-commons/20100527_1</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jersey-core/1.11_1</bundle> - <!-- jclouds uses this version; but probably not needed - <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml.jclouds.version}</bundle> - --> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/1_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_5</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oauth-commons/20100527_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jersey-core/1.11_1</bundle> + <bundle>mvn:org.yaml/snakeyaml/${snakeyaml.jclouds.version}</bundle> <!-- jclouds bundles --> <bundle>mvn:org.apache.jclouds.api/atmos/${jclouds.version}</bundle> @@ -400,29 +405,54 @@ <feature name="brooklyn-container-service" version="${project.version}" description="Brooklyn Container Service and Location Targets"> <feature prerequisite="true">brooklyn-core</feature> - <!-- shared dependencies --> - <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${fasterxml.jackson.version}</bundle> - <bundle dependency='true'>mvn:com.google.guava/guava/${guava.version}</bundle> + <!-- shared dependencies - included for kubernetes-client 4.9.0; not sure if needed now --> + <bundle>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${fasterxml.jackson.version}</bundle> + <bundle>mvn:com.google.guava/guava/${guava.version}</bundle> - <!-- new dependencies for this --> - <!-- note jsr305 provides javax.annotation.meta which is needed we think; +<!-- old deps, for kubernetes-client 4.9.0; mostly seem still needed, but come from the feature now + - new dependencies for this - + - note jsr305 provides javax.annotation.meta which is needed we think; but also javax.annotation at 1.1 which confuses other things; - however it seems not to get installed at runtime now, even though it is listed as part of the feature which is installed --> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.generex/1.0.2_1</bundle> - <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.automaton/1.11-8_1</bundle> - <!-- these need wrapped because they define Bundle-ManifestVersion: 1 --> - <bundle dependency='true'>wrap:mvn:com.squareup.okio/okio/1.15.0$Bundle-SymbolicName=squareup-okio&Bundle-Version=1.15.0&Export-Package=okio;version=1.15.0</bundle> - <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&Bundle-Version=3.12.6&Import-Package=okio;version=1.15,*;resolution:=optional</bundle> - <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/logging-interceptor/3.12.6$Bundle-SymbolicName=squareup-okhttp3-logging-interceptor&Bundle-Version=3.12.6&Import-Package=*;resolution:=mandatory</bundle> - - <!-- these are the main required bundles for these features above --> - <bundle>mvn:io.fabric8/zjsonpatch/0.3.0</bundle> + however it seems not to get installed at runtime now, even though it is listed as part of the feature which is installed - + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.generex/1.0.2_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.automaton/1.11-8_1</bundle> + - these need wrapped because they define Bundle-ManifestVersion: 1 + <bundle>wrap:mvn:com.squareup.okio/okio/1.15.0$Bundle-SymbolicName=squareup-okio&Bundle-Version=1.15.0&Export-Package=okio;version=1.15.0</bundle> + <bundle>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&Bundle-Version=3.12.6&Import-Package=okio;version=1.15,*;resolution:=optional</bundle> + <bundle>wrap:mvn:com.squareup.okhttp3/logging-interceptor/3.12.6$Bundle-SymbolicName=squareup-okhttp3-logging-interceptor&Bundle-Version=3.12.6&Import-Package=*;resolution:=mandatory</bundle> <bundle>mvn:io.fabric8/kubernetes-model/${kubernetes-client.version}</bundle> <bundle>mvn:io.fabric8/kubernetes-client/${kubernetes-client.version}/jar/bundle</bundle> - <bundle>mvn:io.fabric8/openshift-client/${kubernetes-client.version}/jar/bundle</bundle> + --> +<!-- non-obvious bundles pulled in by kubernetes-client feature; need inspection to avoid duplication, might need exclusion in karaf definition + <bundle>mvn:com.google.code.findbugs/jsr305/3.0.2</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.11.2</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.11.2</bundle> + <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.11.2</bundle> + <bundle>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.11.2</bundle> + <bundle>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.11.2</bundle> + <bundle>mvn:org.yaml/snakeyaml/1.26</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.generex/1.0.1_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.automaton/1.11-8_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.conscrypt-openjdk/1.4.2_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.12.1_1</bundle> + <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.15.0_1</bundle> + <bundle>mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.3.0</bundle> + <bundle>mvn:org.ow2.asm/asm/8.0.1</bundle> + <bundle>mvn:org.ow2.asm/asm-analysis/8.0.1</bundle> + <bundle>mvn:org.ow2.asm/asm-commons/8.0.1</bundle> + <bundle>mvn:org.ow2.asm/asm-tree/8.0.1</bundle> + <bundle>mvn:org.ow2.asm/asm-util/8.0.1</bundle> + <bundle>mvn:io.fabric8/kubernetes-model-common/5.8.0</bundle> + <bundle>mvn:io.fabric8/zjsonpatch/0.3.0</bundle> + + - pulled in by openshift-client + <feature>kubernetes-client</feature> +--> + + <feature>openshift-client</feature> <bundle start-level="85">mvn:org.apache.brooklyn/brooklyn-locations-container/${project.version}</bundle> </feature> @@ -444,7 +474,7 @@ <feature prerequisite="true">brooklyn-server-software-all</feature> <feature prerequisite="true">brooklyn-locations-jclouds</feature> <feature>brooklyn-container-service</feature> <!-- install this after the above so servicemix jsr305 doesn't interfere --> - <bundle dependency="true">mvn:org.apache.brooklyn/brooklyn-launcher-common/${project.version}</bundle> + <bundle>mvn:org.apache.brooklyn/brooklyn-launcher-common/${project.version}</bundle> <bundle start-level="90">mvn:org.apache.brooklyn/brooklyn-karaf-init/${project.version}</bundle> <bundle start-level="90">mvn:org.apache.brooklyn/brooklyn-karaf-start/${project.version}</bundle> </feature> diff --git a/pom.xml b/pom.xml index 74ceb4f..247d793 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ <jetty.version>9.4.39.v20210325</jetty.version> <!-- 9.4.31.v20200723 from Karaf 4.3.0 --> <commons-collections.version>3.2.2</commons-collections.version> <pax-web.version>7.3.9</pax-web.version> - <spifly.version>1.3.2</spifly.version> <!-- v1.3.2 from jetty feature; v1.2.4 from pax-jetty --> + <spifly.version>1.3.2</spifly.version> <!-- 1.3.0 from kubernetes; 1.2.4 from pax-jetty; v1.3.2 from erstwhile jetty feature; but 1.3.2 fixes an NPE bug in 1.3.0 so use it --> <felix.framework.version>6.0.3</felix.framework.version> <!-- Transitive dependencies, declared explicitly to avoid version mismatch -->
