<?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>
    <repository>mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/${servicemix.nmr.version}/xml/features</repository>
    <feature name="connector" version="${version}">
        <feature version="${servicemix.nmr.version}">transaction</feature>
        <bundle>mvn:org.apache.geronimo.components/geronimo-connector/${geronimo.connector.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jencks/${jencks.version}</bundle>
    </feature>
    <feature name="web-core" version="${version}">
        <bundle>mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/${geronimo.servlet.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/${jetty.bundle.version}</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-jsp/${pax.web.version}</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-bundle/${pax.web.version}</bundle>
    </feature>
    <feature name="web" version="${version}">
        <feature version="${version}">web-core</feature>
        <bundle>mvn:org.ops4j.pax.web-extender/pax-web-ex-war/${pax.web.extender.version}</bundle>
        <bundle>mvn:org.ops4j.pax.web-extender/pax-web-ex-whiteboard/${pax.web.extender.version}</bundle>
        <bundle>mvn:org.ops4j.pax.url/pax-url-war/${pax.url.version}</bundle>
        <bundle>mvn:org.apache.servicemix.war/org.apache.servicemix.war.deployer/${version}</bundle>
    </feature>
    <feature name="activemq" version="${activemq.version}">
        <feature version="${version}">connector</feature>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/${geronimo.j2ee.management.version}</bundle>
        <bundle>mvn:commons-pool/commons-pool/${commons.pool.version}</bundle>
        <bundle>mvn:org.apache.xbean/xbean-spring/${xbean.version}</bundle>
        <bundle>mvn:org.apache.activemq/activemq-core/${activemq.version}</bundle>
        <bundle>mvn:org.apache.activemq/activemq-ra/${activemq.version}</bundle>
        <bundle>mvn:org.apache.activemq/activemq-console/${activemq.version}</bundle>
        <bundle>mvn:org.apache.activemq/activemq-pool/${activemq.version}</bundle>
        <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.commands/${version}</bundle>
    </feature>
    <feature name="cxf" version="${cxf.version}">
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/${geronimo.annotation.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.javamail-api-1.4/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/${geronimo.wsmetadata.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-${jaxb.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-${jaxws.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/${asm.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/${fastinfoset.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${jaxb.impl.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.neethi/${neethi.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.woodstox/${woodstox.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${wsdl4j.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlschema/${xmlschema.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-${jaxrs.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.cxf/cxf-bundle/${cxf.version}</bundle>
    </feature>
    <feature name="cxf-osgi" version="${version}">
        <feature version="${cxf.version}">cxf</feature>
        <feature version="${version}">web-core</feature>
        <bundle>mvn:org.ops4j.pax.web-extender/pax-web-ex-whiteboard/${pax.web.extender.version}</bundle>
        <bundle>mvn:org.apache.servicemix.cxf/org.apache.servicemix.cxf.transport.osgi/${version}</bundle>
    </feature>
    <feature name="cxf-nmr" version="${version}">
        <feature version="${cxf.version}">cxf</feature>
        <feature version="${servicemix.nmr.version}">nmr</feature>
        <bundle>mvn:org.apache.servicemix.cxf/org.apache.servicemix.cxf.transport.nmr/${version}</bundle>
        <bundle>mvn:org.apache.servicemix.cxf/org.apache.servicemix.cxf.binding.nmr/${version}</bundle>
    </feature>
    <feature name="camel" version="${camel.version}">
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-${jaxb.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${jaxb.impl.version}</bundle>
        <bundle>mvn:org.springframework/spring-tx/${spring.version}</bundle>
        <bundle>mvn:org.apache.camel/camel-core/${camel.version}</bundle>
        <bundle>mvn:org.apache.camel/camel-osgi/${camel.version}</bundle>
        <bundle>mvn:org.apache.camel/camel-spring/${camel.version}</bundle>
    </feature>

    <feature name='camel-jetty' version='${camel.version}'>
        <feature version='${camel.version}'>camel-core</feature>
        <feature version='${camel.version}'>camel-http</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/${jetty.bundle.version}</bundle>
        <bundle>mvn:org.apache.camel/camel-jetty/${camel.version}</bundle>  
    </feature> 

    <feature name='camel-spring-integration' version='${camel.version}'>
        <feature version='${camel.version}'>camel-core</feature>
        <feature version='${camel.version}'>camel-spring</feature>
        <bundle>mvn:org.springframework.integration/org.springframework.integration/${spring.integration.version}</bundle>
        <bundle>mvn:org.apache.camel/camel-spring-integration/${camel.version}</bundle>
    </feature>

    <!--
	  -
	  -  Examples
	  -
      -->
    <feature name="camel-nmr" version="${version}">
        <feature version="${camel.version}">camel</feature>
        <feature version="${servicemix.nmr.version}">nmr</feature>
        <bundle>mvn:org.apache.servicemix.camel/org.apache.servicemix.camel.component/${version}</bundle>
    </feature>
    <feature name="examples-cxf-osgi" version="${version}">
        <feature version="${version}">cxf-osgi</feature>
        <bundle>mvn:org.apache.servicemix.examples/cxf-osgi/${version}</bundle>
    </feature>
    <feature name="examples-cxf-nmr" version="${version}">
        <feature version="${version}">cxf-nmr</feature>
        <bundle>mvn:org.apache.servicemix.examples/cxf-nmr/${version}</bundle>
    </feature>
    <feature name="examples-camel-osgi" version="${version}">
        <feature version="${camel.version}">camel</feature>
        <bundle>mvn:org.apache.servicemix.examples/camel-osgi/${version}</bundle>
    </feature>
    <feature name="examples-camel-nmr" version="${version}">
        <feature version="${version}">camel-nmr</feature>
        <bundle>mvn:org.apache.servicemix.examples/camel-nmr/${version}</bundle>
    </feature>
    <feature name="examples-cxf-camel-nmr" version="${version}">
        <feature version="${version}">camel-nmr</feature>
        <feature version="${version}">cxf-nmr</feature>
        <bundle>mvn:org.apache.servicemix.examples/cxf-camel-nmr/${version}</bundle>
    </feature>
    <!--
      -
      -  JBI Components
      -
      -->
    <feature name="servicemix-shared" version="${servicemix-shared-version}">
        <feature version="${servicemix.nmr.version}">jbi</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${wsdl4j.version}</bundle>
        <bundle>mvn:org.apache.xbean/xbean-spring/${xbean.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-utils/${servicemix-utils.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-common/${servicemix-shared-version}</bundle>
    </feature>
    <feature name="servicemix-cxf-bc" version="${servicemix-cxf-bc-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <feature version="${cxf.version}">cxf</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/${jetty.bundle.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/${xmlsec.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wss4j/${wss4j.version}</bundle>
        <bundle>mvn:org.springframework/spring-tx/${spring.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms.version}</bundle>        
        <bundle>mvn:org.apache.servicemix/servicemix-soap2/${servicemix-shared-version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-cxf-bc/${servicemix-cxf-bc-version}</bundle>
    </feature>
    <feature name="servicemix-file" version="${servicemix-file-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix/servicemix-file/${servicemix-file-version}</bundle>
    </feature>
    <feature name="servicemix-ftp" version="${servicemix-ftp-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oro/${oro.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-net/${commons.net.version}</bundle>
        <bundle>mvn:commons-pool/commons-pool/${commons.pool.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-ftp/${servicemix-ftp-version}</bundle>
    </feature>
    <feature name="servicemix-http" version="${servicemix-http-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-codec/${commons-codec.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons.httpclient.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlschema/${xmlschema.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/${xmlsec.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wss4j/${wss4j.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/${jetty.bundle.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-soap/${servicemix-shared-version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-soap2/${servicemix-shared-version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-http/${servicemix-http-version}</bundle>
    </feature>
    <feature name="servicemix-jms" version="${servicemix-jms-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlschema/${xmlschema.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/${xmlsec.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wss4j/${wss4j.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-soap/${servicemix-shared-version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-soap2/${servicemix-shared-version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/${geronimo.j2ee.connector.version}</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms.version}</bundle>
        <bundle>mvn:org.springframework/spring-jms/${spring.version}</bundle>
        <bundle>mvn:org.springframework/spring-tx/${spring.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-jms/${servicemix-jms-version}</bundle>
    </feature>
    <feature name="servicemix-mail" version="${servicemix-mail-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.javamail-api-1.4/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.geronimo-javamail_1.4_provider/${geronimo.javamail.provider.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-mail/${servicemix-mail-version}</bundle>
    </feature>
    <feature name="servicemix-bean" version="${servicemix-bean-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/${geronimo.annotation.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-bean/${servicemix-bean-version}</bundle>
    </feature>
    <feature name="servicemix-camel" version="${servicemix-camel-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <feature version="${camel.version}">camel</feature>
        <bundle>mvn:org.apache.servicemix/servicemix-camel/${servicemix-camel-version}</bundle>
    </feature>
    <feature name="servicemix-drools" version="${servicemix-drools-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdt-core/${jdt.core.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr-runtime/${antlr.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.drools/${drools.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-drools/${servicemix-drools-version}</bundle>
    </feature>
    <feature name="servicemix-cxf-se" version="${servicemix-cxf-se-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <feature version="${cxf.version}">cxf</feature>
        <bundle>mvn:org.apache.cxf/cxf-rt-bindings-jbi/${cxf.version}</bundle>
        <bundle>mvn:org.apache.cxf/cxf-rt-transports-jbi/${cxf.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-cxf-se/${servicemix-cxf-se-version}</bundle>
    </feature>
    <feature name="servicemix-eip" version="${servicemix-eip-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix/servicemix-eip/${servicemix-eip-version}</bundle>
    </feature>
    <feature name="servicemix-osworkflow" version="${servicemix-osworkflow-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/${antlr.version}</bundle>
        <bundle>mvn:commons-collections/commons-collections/${commons-collections.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.quartz/${quartz.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oscore/${oscore.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.propertyset/${propertyset.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.osworkflow/${osworkflow.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-osworkflow/${servicemix-osworkflow-version}</bundle>
    </feature>
    <feature name="servicemix-quartz" version="${servicemix-quartz-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:commons-collections/commons-collections/${commons-collections.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.quartz/${quartz.version}</bundle>
        <bundle>mvn:org.springframework/spring-context-support/${spring.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-quartz/${servicemix-quartz-version}</bundle>
    </feature>
    <feature name="servicemix-scripting" version="${servicemix-scripting-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.scripting-api-1.0/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.groovy/${groovy.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/${rhino.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jruby/${jruby.version}</bundle>
        <bundle>mvn:com.google.code.scriptengines/scriptengines-groovy/${scriptengines.version}</bundle>
        <bundle>mvn:com.google.code.scriptengines/scriptengines-javascript/${scriptengines.version}</bundle>
        <bundle>mvn:com.google.code.scriptengines/scriptengines-jruby/${scriptengines.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-scripting/${servicemix-scripting-version}</bundle>
    </feature>
    <feature name="servicemix-validation" version="${servicemix-validation-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix/servicemix-validation/${servicemix-validation-version}</bundle>
    </feature>
    <feature name="servicemix-saxon" version="${servicemix-saxon-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-saxon/${servicemix-saxon-version}</bundle>
    </feature>
    <feature name="servicemix-wsn2005" version="${servicemix-wsn2005-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <feature version="${activemq.version}">activemq</feature>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/${geronimo.wsmetadata.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-${jaxb.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-${jaxws.api.version}/${servicemix.specs.version}</bundle>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${jaxb.impl.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-wsn2005/${servicemix-wsn2005-version}</bundle>
    </feature>
    <feature name="servicemix-snmp" version="${servicemix-snmp-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snmp4j/${snmp4j.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-snmp/${servicemix-snmp-version}</bundle>
    </feature>
    <feature name="servicemix-vfs" version="${servicemix-vfs-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix/servicemix-vfs/${servicemix-vfs-version}</bundle>
    </feature>
    <feature name="servicemix-smpp" version="${servicemix-smpp-version}">
        <feature version="${servicemix-shared-version}">servicemix-shared</feature>
        <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsmpp/${jsmpp.version}</bundle>
        <bundle>mvn:org.apache.servicemix/servicemix-smpp/${servicemix-smpp-version}</bundle>
    </feature>
</features>
