blob: 34cda9c02c90b9bc6bc69e6add58c94ab8b5de62 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<featuresProcessing xmlns="http://karaf.apache.org/xmlns/features-processing/v1.0.0">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
File copied from standard Brooklyn 1.0.0, which uses Karaf 4.2.7.
Original file contained the blacklistedRepositories section.
All modifications are commented.
-->
<blacklistedRepositories> <!-- don't let a rogue definition pull in a snapshot repo; shouldn't happen but seems to -->
<repository>mvn:org.apache.karaf.features/framework/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/standard/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/enterprise/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/enterprise-legacy/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/spring/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/spring-legacy/4.3.0-SNAPSHOT/xml/features</repository>
</blacklistedRepositories>
<!--
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
- https://stackoverflow.com/a/53589206
-->
<bundleReplacements>
<!-- JSR305 complements javax.annotation with more classes in same package and new subpackages eg meta;
both have multiple providers; we have standardized on the replacements below -->
<bundle originalUri="mvn:javax.annotation/javax.annotation-api/(0,999]"
replacement="mvn:jakarta.annotation/jakarta.annotation-api/${jakarta.annotation-api.version}" />
<bundle originalUri="mvn:com.google.code.findbugs/jsr305/(0,999]"
replacement="mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}" />
<!-- For crypto, both the karaf ssh feature and jclouds use lower versions than we want;
(some lower versions may have CVEs, and in any case it is preferable to have one version where compatible) -->
<bundle originalUri="mvn:org.bouncycastle/bcutil-jdk15on/[1.51,${bouncycastle.version}]"
replacement="mvn:org.bouncycastle/bcutil-jdk18on/${bouncycastle.version}" />
<bundle originalUri="mvn:org.bouncycastle/bcprov-jdk15on/[1.51,${bouncycastle.version}]"
replacement="mvn:org.bouncycastle/bcprov-jdk18on/${bouncycastle.version}" />
<bundle originalUri="mvn:org.bouncycastle/bcprov-ext-jdk15on/[1.51,${bouncycastle.version}]"
replacement="mvn:org.bouncycastle/bcprov-jdk18on/${bouncycastle.version}" />
<bundle originalUri="mvn:org.bouncycastle/bcpkix-jdk15on/[1.51,${bouncycastle.version}]"
replacement="mvn:org.bouncycastle/bcpkix-jdk18on/${bouncycastle.version}" />
<!-- now we wrap these so blacklist entirely -->
<!-- <bundle originalUri="mvn:net.i2p.crypto/eddsa/[0.1.0,${eddsa.version}]"-->
<!-- replacement="mvn:net.i2p.crypto/eddsa/${eddsa.version}" />-->
<!-- <bundle originalUri="mvn:com.hierynomus/sshj/[0.20.0,${sshj.version}]"-->
<!-- replacement="mvn:com.hierynomus/sshj/${sshj.version}" />-->
<!-- Lower versions of these pulled in by cxf-jackson and possibly others -->
<bundle originalUri="mvn:org.yaml/snakeyaml/[1,${snakeyaml.version}]"
replacement="mvn:org.yaml/snakeyaml/${snakeyaml.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.core/jackson-core/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.core/jackson-annotations/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.core/jackson-databind/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${fasterxml.jackson.version}" />
<bundle originalUri="mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/[2.10,${fasterxml.jackson.version}]"
replacement="mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${fasterxml.jackson.version}" />
<!-- Others discovered by looking at the build -->
<!-- Guava might need tidy-up between jclouds and swagger; but at the moment is okay
<bundle originalUri="mvn:com.google.guava/guava/[18.0, 27.0.1-jre]" ... />
-->
<!-- cxf uses servicemix's variant; other use javax standard one; but jakarta is better; note some cheat and v2.1.1 exports as 2.1.99.b01;
also note service-mix jersey-core used by jclouds but excluded by us also brings in these classes at 1.1.1 -->
<bundle originalUri="mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxrs-api-2.1/[0,999]"
replacement="mvn:jakarta.ws.rs/jakarta.ws.rs-api/${jakarta.rs-api.version}" />
<bundle originalUri="mvn:javax.ws.rs/javax.ws.rs-api/[0,999]"
replacement="mvn:jakarta.ws.rs/jakarta.ws.rs-api/${jakarta.rs-api.version}" />
<bundle originalUri="mvn:jakarta.ws.rs/jakarta.ws.rs-api/[0,999]"
replacement="mvn:jakarta.ws.rs/jakarta.ws.rs-api/${jakarta.rs-api.version}" />
<bundle originalUri="mvn:org.apache.httpcomponents/httpcore-osgi/[4.4,${httpcomponents.httpcore.version}]"
replacement="mvn:org.apache.httpcomponents/httpcore-osgi/${httpcomponents.httpcore.version}" />
<bundle originalUri="mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/[1,${jzlib.osgi.version}]"
replacement="mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}" />
<!-- jetty we need to replace a lot of things pulled in by eclipse to the version we prefer -->
<bundle originalUri="mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/javax-websocket-client-impl/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/javax-websocket-server-impl/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/websocket-api/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/websocket-api/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/websocket-client/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/websocket-client/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/websocket-common/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/websocket-common/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/websocket-server/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/websocket-server/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty.websocket/websocket-servlet/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty.websocket/websocket-servlet/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-client/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-client/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-continuation/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-continuation/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-deploy/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-deploy/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-http/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-http/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-io/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-io/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-jaas/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-jaas/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-jaspi/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-jaspi/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-jmx/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-jmx/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-jndi/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-jndi/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-plus/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-plus/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-proxy/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-proxy/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-rewrite/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-rewrite/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-security/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-security/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-server/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-server/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-servlet/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-servlet/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-servlets/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-servlets/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-util-ajax/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-util-ajax/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-util/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-util/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-webapp/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-webapp/${jetty.version}" />
<bundle originalUri="mvn:org.eclipse.jetty/jetty-xml/[9.4,${jetty.version}]"
replacement="mvn:org.eclipse.jetty/jetty-xml/${jetty.version}" />
<!-- would be nice to map 1.2, but without that we get missing requirement [org.eclipse.jetty.security.jaspi/...] -->
<bundle originalUri="mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/[1.3,${spifly.version}]"
replacement="mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/${spifly.version}" />
<!-- the objectweb (dis)assembly jars are usually needed at multiple major version levels;
see brooklyn-server/pom.xml for discussion; no choice but to allow the multiple versions,
unless we jarjar or drop some of the dependencies.
<bundle originalUri="mvn:org.ow2.asm/asm-analysis/[8,${ow2.asm.version}]"
replacement="mvn:org.ow2.asm/asm-analysis/${ow2.asm.version}" />
<bundle originalUri="mvn:org.ow2.asm/asm-commons/[8,${ow2.asm.version}]"
replacement="mvn:org.ow2.asm/asm-commons/${ow2.asm.version}" />
<bundle originalUri="mvn:org.ow2.asm/asm-tree/[8,${ow2.asm.version}]"
replacement="mvn:org.ow2.asm/asm-tree/${ow2.asm.version}" />
<bundle originalUri="mvn:org.ow2.asm/asm-util/[8,${ow2.asm.version}]"
replacement="mvn:org.ow2.asm/asm-util/${ow2.asm.version}" />
<bundle originalUri="mvn:org.ow2.asm/asm/[8,${ow2.asm.version}]"
replacement="mvn:org.ow2.asm/asm/${ow2.asm.version}" />
-->
</bundleReplacements>
<blacklistedBundles>
<bundle>mvn:org.bouncycastle/bcutil-jdk15on/[1.51,${bouncycastle.version})</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,999]</bundle>
<bundle>mvn:com.hierynomus/sshj/[0.20.0,999]</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:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/[2.10,${fasterxml.jackson.version})</bundle>
<bundle>mvn:javax.mail/mail/[0,999]</bundle> <!-- we use jakarta.mail-api now -->
<bundle>mvn:javax.annotation/javax.annotation-api/[0,999]</bundle> <!-- use jakarta, per above -->
<bundle>mvn:com.google.code.findbugs/jsr305/[0,999]</bundle> <!-- use servicemix, or just exclude -->
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/[0,999]</bundle> <!-- just exclude, not needed, confuses with standard javax.annotation package from jakarta -->
<!-- use the packages from java 1.8, prevent duplicates -->
<bundle>mvn:jakarta.xml.bind/jakarta.xml.bind-api/${jakarta.xml.bind-api.version}</bundle>
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/[0,999]</bundle> <!-- note 2.3 _is_ needed to provide 2.3 version of javax.xml.bind for jakarta.ws and fasterxml jaxb -->
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0</bundle>
<bundle>mvn:jakarta.ws.rs/jakarta.ws.rs-api/[0,${jakarta.rs-api.version})</bundle> <!-- use right version -->
<bundle>mvn:jakarta.ws.rs/jakarta.ws.rs-api/(${jakarta.rs-api.version},999]</bundle> <!-- specifically exclude bogus 2.1.99 -->
<bundle>mvn:javax.ws.rs/javax.ws.rs-api/[0,999]</bundle> <!-- use jakarta above -->
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxrs-api-2.1/[0,999]</bundle> <!-- use javax above -->
<!-- for soap this should be excluded -->
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.4/[0,999]</bundle>
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.3/[0,999]</bundle>
<!-- we supply wrapped versions -->
<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,${spifly.version})</bundle> <!-- see spifly above -->
<!-- Blacklisted bundles must be pulled in elsewhere at the correct version.
Note that replacements might need blacklisting also.
To be safe sometimes we rely on 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>
<!-- this needs snakeyaml 1.x, until jclouds 2.6 is released; we don't use it so not a problem -->
<bundle>mvn:org.apache.jclouds.api/byon</bundle>
</blacklistedBundles>
</featuresProcessing>