You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2021/11/17 15:48:07 UTC
[brooklyn-server] 01/03: fix kubernetes osgi import, fix osgi package confusion, tidy features
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 <al...@cloudsoftcorp.com>
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 -->