<?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>
