<?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 name="karaf-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">

    <feature name="karaf-framework" description="Karaf core feature" version="${project.version}" resolver="(obr)">
        <bundle start-level="5">mvn:org.ops4j.pax.url/pax-url-mvn/${pax.url.version}</bundle>
        <bundle start-level="5">mvn:org.ops4j.pax.url/pax-url-wrap/${pax.url.version}</bundle>
        <bundle start-level="8">mvn:org.ops4j.pax.logging/pax-logging-api/${pax.logging.version}</bundle>
        <bundle start-level="8">mvn:org.ops4j.pax.logging/pax-logging-service/${pax.logging.version}</bundle>
        <bundle start-level="10">mvn:org.apache.felix/org.apache.felix.configadmin/${felix.configadmin.version}</bundle>
        <bundle start-level="11">mvn:org.apache.felix/org.apache.felix.fileinstall/${felix.fileinstall.version}</bundle>
        <bundle start-level="20">mvn:org.ow2.asm/asm-all/${asm.version}</bundle>
        <bundle start-level="20">mvn:org.apache.aries/org.apache.aries.util/${aries.util.version}</bundle>
        <bundle start-level="20">mvn:org.apache.aries.proxy/org.apache.aries.proxy.api/${aries.proxy.api.version}</bundle>
        <bundle start-level="20">mvn:org.apache.aries.proxy/org.apache.aries.proxy.impl/${aries.proxy.version}</bundle>
        <bundle dependency="true" start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/${aries.blueprint.api.version}</bundle>
        <bundle dependency="true" start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/${aries.blueprint.version}</bundle>
        <bundle dependency="true" start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/${aries.blueprint.version}</bundle>

        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.osgi/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.log/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.packages/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.dev/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.config/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.command/${project.version}</bundle>
        <bundle start-level="25">mvn:org.apache.karaf.features/org.apache.karaf.features.core/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.features/org.apache.karaf.features.command/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.features/org.apache.karaf.features.management/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management/org.apache.karaf.management.server/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.api/${aries.jmx.api.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.core/${aries.jmx.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.api/${aries.jmx.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.core/${aries.jmx.version}</bundle>
    </feature>

    <!-- Spring 2 support -->
    <feature name="spring" description="Spring support" version="${spring2.version}" resolver="(obr)">
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-core/${spring2.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-beans/${spring2.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-aop/${spring2.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context/${spring2.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context-support/${spring2.version}</bundle>
    </feature>

    <feature name="spring-web" description="Spring 2 Web support" version="${spring2.version}" resolver="(obr)">
    	<feature version="${spring2.version}">spring</feature>
    	<feature version="${http.feature.version}">http</feature>
    	<bundle start-level="30">mvn:org.springframework/spring-web/${spring2.version}</bundle>
		<bundle start-level="30">mvn:org.springframework/spring-webmvc/${spring2.version}</bundle>
    </feature>

    <!-- Spring 3.0 support -->

    <feature name="spring" description="Spring 3.0.x support" version="${spring30.version}" resolver="(obr)">
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-core/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-asm/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-expression/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-beans/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-aop/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context-support/${spring30.version}</bundle>
    </feature>

    <feature name="spring-aspects" description="Spring AOP support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-aspects/${spring30.version}</bundle>
    </feature>

    <feature name="spring-dm" description="Spring DM support" version="${spring.osgi.version}" resolver="(obr)">
        <feature version="[2.5.6,4)">spring</feature>
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/${cglib.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework.osgi/spring-osgi-io/${spring.osgi.version}</bundle>
        <bundle start-level="30">mvn:org.springframework.osgi/spring-osgi-core/${spring.osgi.version}</bundle>
        <bundle start-level="30">mvn:org.springframework.osgi/spring-osgi-extender/${spring.osgi.version}</bundle>
        <bundle start-level="30">mvn:org.springframework.osgi/spring-osgi-annotation/${spring.osgi.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/${project.version}</bundle>
    </feature>

    <feature name="spring-dm-web" description="Spring DM Web Support" version="${spring.osgi.version}" resolver="(obr)">
    	<feature version="${spring.osgi.version}">spring-dm</feature>
    	<feature version="[2.5.6,4)">spring-web</feature>
    	<feature version="${http.feature.version}">http</feature>
		<bundle start-level="30">mvn:org.springframework.osgi/spring-osgi-web/${spring.osgi.version}</bundle>
    </feature>

    <feature name="spring-instrument" description="Spring Instrument support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-instrument/${spring30.version}</bundle>
    </feature>

    <feature name="spring-jdbc" description="Spring JDBC support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring-tx</feature>
        <bundle start-level="30">mvn:org.springframework/spring-jdbc/${spring30.version}</bundle>
    </feature>

    <feature name="spring-jms" description="Spring JMS support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring-web</feature>
        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms-spec.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-jms/${spring30.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-tx/${spring30.version}</bundle>
    </feature>

    <feature name="spring-struts" description="Spring Struts support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring-web</feature>
        <feature>war</feature>
        <bundle dependency="true" start-level="30">mvn:commons-collections/commons-collections/${commons-collections.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:commons-beanutils/commons-beanutils/${commons-beanutils.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/${struts.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-struts/${spring30.version}</bundle>
    </feature>

    <feature name="spring-test" description="Spring Test support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-test/${spring30.version}</bundle>
    </feature>

    <feature name="spring-orm" description="Spring ORM support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring-jdbc</feature>
        <bundle start-level="30">mvn:org.springframework/spring-orm/${spring30.version}</bundle>
    </feature>

    <feature name="spring-oxm" description="Spring OXM support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-oxm/${spring30.version}</bundle>
    </feature>

    <feature name="spring-tx" description="Spring Transaction (TX) support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-tx/${spring30.version}</bundle>
    </feature>

    <feature name="spring-web" description="Spring Web support" version="${spring30.version}" resolver="(obr)">
    	<feature version="${spring30.version}">spring</feature>
    	<feature version="${http.feature.version}">http</feature>
    	<bundle start-level="30">mvn:org.springframework/spring-web/${spring30.version}</bundle>
		<bundle start-level="30">mvn:org.springframework/spring-webmvc/${spring30.version}</bundle>
    </feature>

    <feature name="spring-web-portlet" description="Spring Web Portlet support" version="${spring30.version}" resolver="(obr)">
        <feature version="${spring30.version}">spring-web</feature>
        <bundle dependency="true" start-level="30">mvn:javax.portlet/portlet-api/${portlet-api.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-webmvc-portlet/${spring30.version}</bundle>
    </feature>

    <!-- Spring 3.1 support -->

    <feature name="spring" description="Spring 3.1.x support" version="${spring31.version}" resolver="(obr)">
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-core/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-asm/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-expression/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-beans/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-aop/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-context-support/${spring31.version}</bundle>
    </feature>

    <feature name="spring-aspects" description="Spring 3.1 AOP support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-aspects/${spring31.version}</bundle>
    </feature>

    <feature name="spring-instrument" description="Spring 3.1 Instrument support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-instrument/${spring31.version}</bundle>
    </feature>

    <feature name="spring-jdbc" description="Spring 3.1 JDBC support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring-tx</feature>
        <bundle start-level="30">mvn:org.springframework/spring-jdbc/${spring31.version}</bundle>
    </feature>

    <feature name="spring-jms" description="Spring 3.1 JMS support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring-web</feature>
        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms-spec.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-jms/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-tx/${spring31.version}</bundle>
    </feature>

    <feature name="spring-struts" description="Spring 3.1 Struts support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring-web</feature>
        <feature>war</feature>
        <bundle dependency="true" start-level="30">mvn:commons-collections/commons-collections/${commons-collections.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:commons-beanutils/commons-beanutils/${commons-beanutils.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/${struts.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-struts/${spring31.version}</bundle>
    </feature>

    <feature name="spring-test" description="Spring 3.1 Test support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-test/${spring31.version}</bundle>
    </feature>

    <feature name="spring-orm" description="Spring 3.1 ORM support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring-jdbc</feature>
        <bundle start-level="30">mvn:org.springframework/spring-orm/${spring31.version}</bundle>
    </feature>

    <feature name="spring-oxm" description="Spring 3.1 OXM support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-oxm/${spring31.version}</bundle>
    </feature>

    <feature name="spring-tx" description="Spring 3.1 Transaction (TX) support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <bundle start-level="30">mvn:org.springframework/spring-tx/${spring31.version}</bundle>
    </feature>

    <feature name="spring-web" description="Spring 3.1 Web support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring</feature>
        <feature version="${http.feature.version}">http</feature>
        <bundle start-level="30">mvn:org.springframework/spring-web/${spring31.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-webmvc/${spring31.version}</bundle>
    </feature>

    <feature name="spring-web-portlet" description="Spring 3.1 Web Portlet support" version="${spring31.version}" resolver="(obr)">
        <feature version="${spring31.version}">spring-web</feature>
        <bundle dependency="true" start-level="30">mvn:javax.portlet/portlet-api/${portlet-api.version}</bundle>
        <bundle start-level="30">mvn:org.springframework/spring-webmvc-portlet/${spring31.version}</bundle>
    </feature>

    <feature name="wrapper" description="Provide OS integration" version="${project.version}">
        <bundle>mvn:org.apache.karaf.shell/org.apache.karaf.shell.wrapper/${project.version}</bundle>
    </feature>

    <feature name="obr" description="Provide OSGi Bundle Repository (OBR) support" version="${project.version}">
        <bundle start-level="30">mvn:org.apache.felix/org.osgi.service.obr/${felix.obr.version}</bundle>
        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.bundlerepository/${felix.bundlerepository.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.obr/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.features/org.apache.karaf.features.obr/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.obr/${project.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.url/pax-url-obr/${pax.url.version}</bundle>
    </feature>

    <feature name="config" description="Provide OSGi ConfigAdmin support" version="${project.version}">
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.config/${project.version}</bundle>
    </feature>

    <feature name="jetty" description="Provide Jetty engine support" version="${jetty.version}" resolver="(obr)">
        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/${geronimo.servlet.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:javax.mail/mail/${javax.mail.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-util/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-io/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-http/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-client/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-continuation/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-jmx/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-server/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-security/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-servlet/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-servlets/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-xml/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-webapp/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-jndi/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-plus/${jetty.version}</bundle>
        <bundle start-level="30">mvn:org.eclipse.jetty/jetty-websocket/${jetty.version}</bundle>
    </feature>

    <feature name="http" description="Implementation of the OSGi HTTP service" version="${project.version}" resolver="(obr)">
        <configfile finalname="/etc/jetty.xml">mvn:org.apache.karaf/apache-karaf/${project.version}/xml/jettyconfig</configfile>
        <config name="org.ops4j.pax.web">
            org.osgi.service.http.port=8181
            javax.servlet.context.tempdir=${karaf.data}/pax-web-jsp
            org.ops4j.pax.web.config.file=${karaf.base}/etc/jetty.xml
        </config>
        <feature version="[7.0,8.0)">jetty</feature>
    	<bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-api/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-spi/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-runtime/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-jetty/${pax.web.version}</bundle>
    </feature>

    <feature name="http-whiteboard" description="Provide HTTP Whiteboard pattern support" version="${project.version}" resolver="(obr)">
        <feature version="${http.feature.version}">http</feature>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/${pax.web.version}</bundle>
    </feature>

    <feature name="war" description="Turn Karaf as a full WebContainer" version="${project.version}" resolver="(obr)">
        <config name="org.ops4j.pax.url.war">
            org.ops4j.pax.url.war.importPaxLoggingPackages=true
        </config>
        <feature>http-whiteboard</feature>
        <bundle start-level='30'>mvn:org.apache.karaf.shell/org.apache.karaf.shell.web/${project.version}</bundle>
        <bundle start-level='30'>mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.web/${project.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-jsp/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-extender-war/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.web/pax-web-deployer/${pax.web.version}</bundle>
        <bundle start-level="30">mvn:org.ops4j.pax.url/pax-url-war/${pax.url.version}</bundle>
    </feature>

    <feature name="kar" description="Provide KAR (KARaf archive) support" version="${project.version}">
        <bundle start-level="30">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.kar/${project.version}</bundle>
    </feature>

    <feature name="webconsole-base" description="Base support of the Karaf WebConsole" version="${project.version}">
        <config name="org.apache.karaf.webconsole">
            realm=karaf
            role=${karaf.admin.role}
        </config>
        <feature version="${http.feature.version}">http</feature>
        <bundle start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.branding/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/${project.version}</bundle>
    </feature>

    <feature name="webconsole" description="Karaf WebConsole for administration and monitoring" version="${project.version}">
        <feature version="${project.version}">webconsole-base</feature>
        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.admin/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.gogo/${project.version}</bundle>
		<bundle start-level="30">mvn:org.apache.felix/org.apache.felix.webconsole.plugins.event/${felix.eventadmin-plugin.version}</bundle>
    </feature>

    <feature name="ssh" description="Provide a SSHd server on Karaf" version="${project.version}">
        <config name="org.apache.karaf.shell">
            sshPort=8101
            sshHost=0.0.0.0
            sshRealm=karaf
            hostKey=${karaf.base}/etc/host.key
        </config>
        <bundle start-level="30" dependency='true'>mvn:org.apache.mina/mina-core/${mina.version}</bundle>
        <bundle start-level="30" dependency='true'>mvn:org.apache.sshd/sshd-core/${sshd.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.ssh/${project.version}</bundle>
    </feature>

    <feature name="management" description="Provide a JMX MBeanServer and a set of MBeans in Karaf" version="${project.version}">
        <bundle start-level="30">mvn:org.apache.karaf.management/org.apache.karaf.management.server/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.api/${aries.jmx.api.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.core/${aries.jmx.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.api/${aries.jmx.version}</bundle>
        <bundle start-level="30">mvn:org.apache.aries.jmx/org.apache.aries.jmx.blueprint.core/${aries.jmx.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.system/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.bundles/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.services/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.config/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.log/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.packages/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.dev/${project.version}</bundle>
    </feature>

    <feature name="eventadmin" description="OSGi Event Admin service specification for event-based communication" version="${project.version}">
		<bundle start-level='30'>mvn:org.apache.felix/org.apache.felix.eventadmin/${felix.eventadmin.version}</bundle>
    </feature>

    <feature name="jasypt-encryption" description="Advanced encryption support for Karaf security" version="${project.version}" resolver="(obr)">
        <bundle dependency="true" start-level="30">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle>
        <bundle dependency='true' start-level="30">mvn:commons-lang/commons-lang/${commons-lang.version}</bundle>
        <bundle dependency='true' start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/${jasypt.bundle.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.jasypt/${project.version}</bundle>
    </feature>

    <feature name="scr" description="Declarative Service support" version="${project.version}" resolver="(obr)">
        <feature>eventadmin</feature>
        <bundle dependency="true" start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
        <bundle dependency="true" start-level="30">mvn:org.apache.felix/org.apache.felix.scr/${felix.scr.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.scr/${project.version}</bundle>
        <bundle start-level="30">mvn:org.apache.karaf.management.mbeans/org.apache.karaf.management.mbeans.scr/${project.version}</bundle>
    </feature>
</features>
