<?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/bcprov-jdk15on/[1.51,${bouncycastle.version}]"
            replacement="mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle.version}" />
        <bundle originalUri="mvn:org.bouncycastle/bcprov-ext-jdk15on/[1.51,${bouncycastle.version}]"
            replacement="mvn:org.bouncycastle/bcprov-ext-jdk15on/${bouncycastle.version}" />
        <bundle originalUri="mvn:org.bouncycastle/bcpkix-jdk15on/[1.51,${bouncycastle.version}]"
            replacement="mvn:org.bouncycastle/bcpkix-jdk15on/${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/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>

    </blacklistedBundles>

</featuresProcessing>
