<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
          name="org.apache.brooklyn-${project.version}"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="http://karaf.apache.org/xmlns/features/v1.4.0">

    <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository>
    <repository>mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.version}/xml/features</repository>
    <repository>mvn:org.apache.cxf.karaf/apache-cxf/${cxf.version}/xml/features</repository>
    <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: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>
    </feature>

    <feature name="brooklyn-utils-common" version="${project.version}" description="Brooklyn Common Utils">
        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-common/${project.version}</bundle>
        <bundle>mvn:org.apache.brooklyn/brooklyn-logback-includes/${project.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.slf4j/jul-to-slf4j/${slf4j.version}</bundle>
        <bundle dependency="true">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 dependency="true">mvn:ch.qos.logback/logback-classic/${logback.version}</bundle>
        <bundle dependency="true">mvn:ch.qos.logback/logback-core/${logback.version}</bundle>
    </feature>

    <feature name="brooklyn-utils-groovy" version="${project.version}" description="Brooklyn Groovy Utils">
        <feature>brooklyn-utils-common</feature>
        <bundle>mvn:org.apache.brooklyn/brooklyn-utils-common/${project.version}</bundle>
    </feature>

    <feature name="brooklyn-utils-rest-swagger" version="${project.version}" description="Brooklyn REST Swagger Apidoc Utilities">
        <feature>brooklyn-utils-common</feature>
        <feature version="${swagger.version}">swagger</feature>

        <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 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>
    </feature>

    <feature name="brooklyn-rest-api" version="${project.version}" description="Brooklyn REST API">
        <feature>brooklyn-utils-rest-swagger</feature>
        <feature>brooklyn-api</feature>
        <feature>brooklyn-core</feature>

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

        <!-- 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 dependency="true">mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle>
    </feature>

<!--
    <feature name="brooklyn-rest-client" version="${project.version}" description="Brooklyn REST Client">
        <feature>brooklyn-rest-api</feature>
        <feature>swagger</feature>

        <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:commons-logging/commons-logging/${commons-logging.version}</bundle>
        <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec.version}</bundle>

        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/${jsr305.bundle.version}</bundle>
        <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson.version}</bundle>

        <bundle dependency="true">mvn:commons-io/commons-io/${commons-io.version}</bundle>
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jcip-annotations/${jcip-annotations.bundle.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-annotations/${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.jaxrs/jackson-jaxrs-json-provider/${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.module/jackson-module-jaxb-annotations/${fasterxml.jackson.version}</bundle>
        <bundle dependency="true">mvn:com.fasterxml.jackson.datatype/jackson-datatype-guava/${fasterxml.jackson.version}</bundle>
    </feature>
-->

    <feature name="brooklyn-api"  version="${project.version}" description="Brooklyn API">
        <feature>brooklyn-utils-common</feature>
        <bundle>mvn:org.apache.brooklyn/brooklyn-api/${project.version}</bundle>
    </feature>

    <feature name="brooklyn-core" version="${project.version}" description="Brooklyn Core">
        <feature>pax-jetty</feature>
        <feature>brooklyn-api</feature>

        <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.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>
        <!-- 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:com.hierynomus/sshj/${sshj.version}</bundle>
        <bundle dependency="true">wrap:mvn:com.hierynomus/asn-one/${asn1.version}</bundle>
        <bundle dependency="true">mvn:net.i2p.crypto/eddsa/${eddsa.version}</bundle><!-- from com.hierynomous/sshj -->
        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.version}</bundle>
        <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: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>

        <!-- 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 dependency="true">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>

        <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>
    </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>
    </feature>

<!--
    <feature name="brooklyn-camp-server" version="${project.version}" description="Brooklyn CAMP Server">
        <bundle>mvn:org.apache.brooklyn.camp/camp-server/${project.version}</bundle>

        <feature>brooklyn-camp-base</feature>
        <feature>brooklyn-utils-rest-swagger</feature>
        <feature>pax-jetty</feature>
    </feature>
-->

    <feature name="brooklyn-rest-resources-prereqs" version="${project.version}" description="Brooklyn REST Resources Prerequisites">
        <feature>brooklyn-core</feature>
        <feature>brooklyn-rest-api</feature>
        <feature>brooklyn-camp-brooklyn</feature>
        <feature>brooklyn-camp-base</feature>

        <feature>cxf-jaxrs-with-optional-dependencies</feature>
        <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-rs-security-cors/${cxf.version}</bundle>
        <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>

        <!-- should be deps of jax-rs-2.0 rest-api project -->
        <bundle dependency="true">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>

        <config name="org.apache.cxf.osgi">
            org.apache.cxf.servlet.context = /v1
        </config>
    </feature>

    <feature name="cxf-jaxrs-with-optional-dependencies" version="${project.version}" description="cxf-jaxrs with optional dependencies">
        <feature>cxf-jaxrs</feature>
        
        <!-- otherwise causes jackson-jaxrs-json-provider to be rewired when this optional dep is installed -->
        <bundle dependency="true" start-level="35">mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${fasterxml.jackson.version}</bundle>
    </feature>


    <feature name="brooklyn-rest-resources" version="${project.version}" description="Brooklyn REST Resources">
        <feature>brooklyn-rest-resources-prereqs</feature>
        <bundle>mvn:org.apache.brooklyn/brooklyn-rest-resources/${project.version}</bundle>
    </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-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:org.apache.brooklyn/brooklyn-karaf-httpcomponents-extension/${project.version}</bundle>
        <feature>cxf-jaxws</feature>
        <feature>cxf-http-async</feature>
        <feature>cxf-ws-addr</feature>
    </feature>

    <feature name="brooklyn-policy"  version="${project.version}" description="Brooklyn Policies">
        <bundle>mvn:org.apache.brooklyn/brooklyn-policy/${project.version}</bundle>
        <feature>brooklyn-core</feature>
    </feature>

    <feature name="brooklyn-software-base"  version="${project.version}"  description="Brooklyn Software Base">
        <bundle>mvn:org.apache.brooklyn/brooklyn-software-base/${project.version}</bundle>
        <feature>brooklyn-software-winrm</feature>
        <feature>brooklyn-policy</feature>
    </feature>

    <feature name="brooklyn-jmxmp-agent" version="${project.version}" description="Brooklyn Secure JMXMP Agent">
        <bundle>mvn:org.apache.brooklyn/brooklyn-jmxmp-agent/${project.version}</bundle>
        <feature>brooklyn-core</feature>
        <bundle dependency="true">wrap:mvn:org.glassfish.external/opendmk_jmxremote_optional_jar/${opendmk_jmxremote_optional_jar.version}$Import-Package=javax.management.openmbean,*</bundle>
    </feature>

    <feature name="brooklyn-jmxrmi-agent" version="${project.version}" description="Brooklyn JMX RMI Agent">
        <bundle>mvn:org.apache.brooklyn/brooklyn-jmxrmi-agent/${project.version}</bundle>
    </feature>

    <feature name="brooklyn-locations-jclouds" version="${project.version}" description="Brooklyn Jclouds Location Targets">
        <bundle>mvn:org.apache.jclouds/jclouds-loadbalancer/${jclouds.version}</bundle>
        <feature>brooklyn-core</feature>
        <feature>jclouds-services</feature>
        <feature>jclouds-driver-sshj</feature>
        <feature>jclouds-driver-slf4j</feature>

        <!-- Same as allcompute -->
        <!-- As at jclouds 2.1.0 this pulls in snakeyaml 1.17 via jclouds-api-byon;
             I cannot see any way to prevent this, short of not using the jclouds feature
             definitions. Things we have tried include redeclaring that feature here
             with our preferred bundle and it works most places but at least one runtime
             (an RPM build of a downstream project installed to Docker) won't start as
             it seems to read the other feature definition.  We also tried the etc/overrides.properties
             but that did not prevent it from pulling in 1.17 at build, or if we built correctly,
             it did not prevent it from needing the 1.17 at runtime. Luckily having the two
             snakeyaml versions doesn't seem to be a problem. -->
        <feature>jclouds-all-compute</feature>
        <bundle dependency='true'>mvn:org.yaml/snakeyaml/1.17</bundle>

        <!-- Same as allblobstore -->
        <feature>jclouds-all-blobstore</feature>

        <bundle start-level="85">mvn:org.apache.brooklyn/brooklyn-locations-jclouds/${project.version}</bundle>
        <feature>brooklyn-software-winrm</feature>
        <feature>brooklyn-locations-jclouds-labs</feature>
    </feature>

    <feature name="brooklyn-locations-jclouds-labs" version="${project.version}" description="Brooklyn JClouds Labs Location Targets">
    </feature>

    <feature name="brooklyn-container-service" version="${project.version}" description="Brooklyn Container Service and Location Targets">
        <feature>brooklyn-core</feature>

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

        <!-- (1) -->
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsr305/3.0.2_1</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>
        <!-- (2) -->
        <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>
        <!-- (4) -->
        <!-- these are the main required bundles for these features above -->
        <bundle>mvn:io.fabric8/zjsonpatch/0.3.0</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>

        <bundle dependency='true'>mvn:com.google.guava/guava/${guava.version}</bundle>
        <bundle start-level="85">mvn:org.apache.brooklyn/brooklyn-locations-container/${project.version}</bundle>
    </feature>

    <feature name="brooklyn-test-framework" version="${project.version}" description="Brooklyn Test Framework" >
        <bundle>mvn:org.apache.brooklyn/brooklyn-test-framework/${project.version}</bundle>
    </feature>

    <feature name="brooklyn-server-software-all" version="${project.version}" description="Brooklyn All Core Entities">
        <feature>brooklyn-software-base</feature>
        <feature>brooklyn-jmxmp-agent</feature>
        <feature>brooklyn-jmxrmi-agent</feature>
        <feature>brooklyn-test-framework</feature>
    </feature>

    <feature name="brooklyn-osgi-launcher" version="${project.version}" description="Brooklyn init">
        <feature>brooklyn-core</feature>
        <feature>brooklyn-server-software-all</feature>
        <feature>brooklyn-locations-jclouds</feature>
        <feature>brooklyn-container-service</feature>
        <bundle dependency="true">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>
</features>
