Skip to content

Commit

Permalink
where we update the bundle, add an explicit reference and a blacklist
Browse files Browse the repository at this point in the history
otherwise maven insists on resolving the pre-replaced non-blacklisted bundles
  • Loading branch information
ahgittin committed Apr 8, 2021
1 parent 3288e06 commit 83f35a3
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 1 deletion.
34 changes: 33 additions & 1 deletion karaf/features/src/main/feature/feature.xml
Expand Up @@ -52,7 +52,9 @@
<bundle dependency="true">mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle.version}</bundle>
</feature>

<feature name="brooklyn-startup-features" version="${project.version}" description="Bundles to add to startup.properties">
<feature name="brooklyn-startup-features" version="${project.version}" description="Bundles to load early">
<!-- this might not be needed as a separate feature anymore; the load order has changed -->

<!-- <bundle dependency="true">mvn:org.apache.servicemix.specs.activation-api-1.1</bundle>-->
<!-- <bundle dependency="true">mvn:org.apache.servicemix.specs.activation-api-1.1/2.9.0</bundle>-->
<bundle dependency="true">mvn:com.sun.activation/jakarta.activation/${jakarta.activation.version}</bundle>
Expand Down Expand Up @@ -103,6 +105,36 @@
<feature name="brooklyn-jsgui-prereqs" version="${project.version}" description="Brooklyn REST JavaScript Web GUI">
<feature>pax-jetty</feature> <!-- jaas bundle -->
<feature>war</feature>

<!-- we update the versions of these bundles; as per the org.apache.karaf.features.xml file in this project,
these need to be declared here -->
<bundle>mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-api/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-client/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-common/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-server/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-servlet/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-client/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-continuation/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-deploy/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-http/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-io/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jaas/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jaspi/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jmx/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jndi/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-plus/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-proxy/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-rewrite/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-security/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-server/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-servlet/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-servlets/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-util-ajax/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-util/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-webapp/${jetty.version}</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-xml/${jetty.version}</bundle>
</feature>

<feature name="brooklyn-jsgui" version="${project.version}" description="Brooklyn REST JavaScript Web GUI">
Expand Down
Expand Up @@ -38,6 +38,20 @@


<!--
Many features we use declare versions other than the principal ones we want to use.
We use bundleReplacements to point at the right version (it must be compatible), as below.
Note it is usually also necessary to include the old versions in the blacklistedBundles shown further below,
otherwise maven will need to find the old version even though Karaf doesn't install it.
(This is true even in bundleReplacement/bundle@mode="maven" and can easily be overlooked if you have
the old bundle in your .m2 cache or Brooklyn is allowed to download it from Maven Central.)
In addition, the desired version must be identified as a dependency of a feature being installed.
Where an upstream dependency is being modernized, this may need an explicit reference in a feature.
Blacklisted bundles obviously must use a range _excluding_ the current version: ')'
Replacement originalUri fields do not need to but we tend to go up to current version _inclusive_: ']'
For more info on the override mechanism used here, see:
- https://issues.apache.org/jira/browse/KARAF-5376?focusedCommentId=16431939&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16431939
- https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/org.apache.karaf.features.xml
Expand Down Expand Up @@ -173,4 +187,55 @@

</bundleReplacements>

<blacklistedBundles>
<bundle>mvn:javax.annotation/javax.annotation-api/[1.3,1.4)</bundle>
<bundle>mvn:org.bouncycastle/bcprov-jdk15on/[1.51,${bouncycastle.version})</bundle>
<bundle>mvn:org.bouncycastle/bcprov-ext-jdk15on/[1.51,${bouncycastle.version})</bundle>
<bundle>mvn:org.bouncycastle/bcpkix-jdk15on/[1.51,${bouncycastle.version})</bundle>
<bundle>mvn:net.i2p.crypto/eddsa/[0.1.0,${eddsa.version})</bundle>
<bundle>mvn:com.hierynomus/sshj/[0.20.0,${sshj.version})</bundle>
<bundle>mvn:org.yaml/snakeyaml/[1,${snakeyaml.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.core/jackson-core/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.core/jackson-databind/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:javax.mail/mail/[1.4.4,${javax.mail.version})</bundle>
<bundle>mvn:javax.ws.rs/javax.ws.rs-api/[2,${jax-rs-api.version})</bundle>

<!-- Blacklisted bundles must be pulled in elsewhere at the correct version.
This might mean explicit dependencies declared in a feature. -->

<bundle>mvn:org.apache.httpcomponents/httpcore-osgi/[4.4,${httpcomponents.httpcore.version})</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/[1,${jzlib.osgi.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-api/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-client/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-common/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-server/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty.websocket/websocket-servlet/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-client/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-continuation/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-deploy/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-http/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-io/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jaas/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jaspi/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jmx/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-jndi/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-plus/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-proxy/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-rewrite/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-security/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-server/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-servlet/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-servlets/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-util-ajax/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-util/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-webapp/[9.4,${jetty.version})</bundle>
<bundle>mvn:org.eclipse.jetty/jetty-xml/[9.4,${jetty.version})</bundle>
</blacklistedBundles>

</featuresProcessing>

0 comments on commit 83f35a3

Please sign in to comment.