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&amp;Bundle-SymbolicName=net.i2p.crypto.eddsa_wrapped&amp;Bundle-Version=${eddsa.version}&amp;Export-Package=*;version="${eddsa.version}"</bundle>
-        <bundle 
dependency="true">wrap:mvn:com.hierynomus/sshj/${sshj.version}$overwrite=merge&amp;Bundle-SymbolicName=com.hierynomus.sshj_wrapped&amp;Bundle-Version=${sshj.version}&amp;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&amp;Bundle-SymbolicName=net.i2p.crypto.eddsa_wrapped&amp;Bundle-Version=${eddsa.version}&amp;Export-Package=*;version="${eddsa.version}"</bundle>
+        
<bundle>wrap:mvn:com.hierynomus/sshj/${sshj.version}$overwrite=merge&amp;Bundle-SymbolicName=com.hierynomus.sshj_wrapped&amp;Bundle-Version=${sshj.version}&amp;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&amp;Bundle-Version=1.15.0&amp;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&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=1.15.0&amp;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&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=1.15.0&amp;Export-Package=okio;version=1.15.0</bundle>
-        <bundle 
dependency='true'>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=1.15.0&amp;Export-Package=okio;version=1.15.0</bundle>
+        
<bundle>wrap:mvn:com.squareup.okhttp3/okhttp/3.12.6$Bundle-SymbolicName=squareup-okhttp3&amp;Bundle-Version=3.12.6&amp;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&amp;Bundle-Version=3.12.6&amp;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 -->

Reply via email to