<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  ~ Copyright 2014-present Open Networking Laboratory
  ~
  ~ Licensed 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.2.0"
          name="onos-@FEATURE-VERSION">
    <repository>mvn:org.apache.karaf.features/standard/3.0.5/xml/features</repository>

    <feature name="onos-thirdparty-base" version="@FEATURE-VERSION"
             description="ONOS 3rd party dependencies">
        <bundle>mvn:commons-lang/commons-lang/2.6</bundle>
        <bundle>mvn:org.apache.commons/commons-lang3/3.4</bundle>
        <bundle>mvn:commons-configuration/commons-configuration/1.10</bundle>
        <bundle>mvn:com.google.guava/guava/19.0</bundle>
        <bundle>mvn:io.netty/netty/3.10.5.Final</bundle>
        <bundle>mvn:io.netty/netty-common/4.0.36.Final</bundle>
        <bundle>mvn:io.netty/netty-buffer/4.0.36.Final</bundle>
        <bundle>mvn:io.netty/netty-transport/4.0.36.Final</bundle>
        <bundle>mvn:io.netty/netty-handler/4.0.36.Final</bundle>
        <bundle>mvn:io.netty/netty-codec/4.0.36.Final</bundle>
        <bundle>mvn:io.netty/netty-transport-native-epoll/4.0.36.Final</bundle>
        <bundle>mvn:commons-pool/commons-pool/1.6</bundle>
        <bundle>mvn:org.apache.commons/commons-math3/3.6.1</bundle>

        <bundle>mvn:joda-time/joda-time/2.9.3</bundle>

        <bundle>mvn:io.dropwizard.metrics/metrics-core/3.1.2</bundle>
        <bundle>mvn:io.dropwizard.metrics/metrics-json/3.1.2</bundle>
        <bundle>mvn:com.eclipsesource.minimal-json/minimal-json/0.9.4</bundle>

        <bundle>mvn:com.esotericsoftware/kryo/3.0.3</bundle>
        <bundle>mvn:com.esotericsoftware/reflectasm/1.11.0</bundle>
        <bundle>mvn:org.ow2.asm/asm/5.0.3</bundle>
        <bundle>mvn:com.esotericsoftware/minlog/1.3.0</bundle>
        <bundle>mvn:org.objenesis/objenesis/2.2</bundle>

        <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.7.3</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.7.3</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.7.3</bundle>

        <bundle>mvn:commons-configuration/commons-configuration/1.10</bundle>
        <bundle>mvn:commons-collections/commons-collections/3.2.2</bundle>

        <bundle>mvn:com.typesafe/config/1.2.1</bundle>
        <bundle>wrap:mvn:com.googlecode.concurrent-trees/concurrent-trees/2.4.0$Bundle-SymbolicName=concurrent-trees&amp;Bundle-Version=2.4.0</bundle>
        <bundle>mvn:commons-io/commons-io/2.4</bundle>
        <bundle>mvn:io.atomix/atomix-all/1.0.0-rc9</bundle>

        <bundle>mvn:org.glassfish.jersey.core/jersey-client/2.22.2</bundle>

        <bundle>mvn:org.mapdb/mapdb/1.0.7</bundle>
    </feature>

    <feature name="onos-thirdparty-web" version="@FEATURE-VERSION"
             description="ONOS 3rd party dependencies for web apps">
        <feature>war</feature>
        <feature>onos-thirdparty-base</feature>
        <!-- Bundles for jersey-common 2.x -->
        <bundle>mvn:org.glassfish.jersey.core/jersey-common/2.22.2</bundle>
        <bundle>mvn:javax.annotation/javax.annotation-api/1.2</bundle>
        <bundle>mvn:javax.ws.rs/javax.ws.rs-api/2.0.1</bundle>
        <bundle>mvn:org.glassfish.hk2/hk2-api/2.4.0</bundle>
        <bundle>mvn:org.glassfish.hk2/hk2-locator/2.4.0</bundle>
        <bundle>mvn:org.glassfish.hk2/osgi-resource-locator/1.0.1</bundle>
        <bundle>mvn:org.glassfish.hk2.external/javax.inject/2.4.0</bundle>
        <bundle>mvn:org.glassfish.jersey.bundles.repackaged/jersey-guava/2.22.2</bundle>
        <!-- Bundles for jersey-server -->
        <bundle>mvn:org.glassfish.jersey.core/jersey-server/2.22.2</bundle>
        <bundle>mvn:org.glassfish.hk2.external/aopalliance-repackaged/2.4.0</bundle>
        <bundle>mvn:org.glassfish.hk2/hk2-utils/2.4.0</bundle>
        <bundle>mvn:javax.validation/validation-api/1.1.0.Final</bundle>
        <bundle>mvn:org.javassist/javassist/3.18.1-GA</bundle>
        <!-- Bundles for jersey-servlet -->
        <bundle>mvn:org.glassfish.jersey.containers/jersey-container-servlet/2.22.2</bundle>
        <bundle>mvn:org.glassfish.jersey.containers/jersey-container-servlet-core/2.22.2</bundle>
        <!-- Bundles for jersey-media-multipart -->
        <bundle>mvn:org.glassfish.jersey.media/jersey-media-multipart/2.22.2</bundle>
        <bundle>mvn:org.jvnet.mimepull/mimepull/1.9.6</bundle>
    </feature>

    <feature name="onos-api" version="@FEATURE-VERSION"
             description="ONOS services and model API">
        <feature>scr</feature>
        <feature>onos-thirdparty-base</feature>
        <bundle>mvn:org.onosproject/onlab-misc/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onlab-osgi/@ONOS-VERSION</bundle>

        <bundle>mvn:org.onosproject/onos-api/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-incubator-api/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-core" version="@FEATURE-VERSION"
             description="ONOS core components">
        <feature>onos-api</feature>
        <bundle>mvn:org.onosproject/onos-core-net/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-core-common/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-core-dist/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-core-primitives/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-core-persistence/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-core-serializers/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-incubator" version="@FEATURE-VERSION"
             description="ONOS core incubator components">
        <feature>onos-core</feature>
        <bundle>mvn:org.onosproject/onos-incubator-net/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-incubator-core/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-incubator-store/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-incubator-rpc/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-rest" version="@FEATURE-VERSION"
             description="ONOS REST API components">
        <feature>onos-api</feature>
        <feature>onos-thirdparty-web</feature>
        <bundle>mvn:org.onosproject/onlab-rest/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-rest/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-gui" version="@FEATURE-VERSION"
             description="ONOS GUI console components">
        <feature>onos-api</feature>
        <feature>onos-thirdparty-web</feature>
        <bundle>mvn:org.eclipse.jetty/jetty-websocket/8.1.19.v20160209</bundle>
        <bundle>mvn:org.onosproject/onlab-rest/@ONOS-VERSION</bundle>
        <bundle>mvn:org.onosproject/onos-gui/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-cli" version="@FEATURE-VERSION"
             description="ONOS admin command console components">
        <feature>onos-api</feature>
        <bundle>mvn:org.onosproject/onos-cli/@ONOS-VERSION</bundle>
    </feature>

    <feature name="onos-security" version="@FEATURE-VERSION"
             description="Security-Mode ONOS">
        <feature>onos-api</feature>
        <bundle>mvn:org.onosproject/org.apache.felix.framework.security/2.2.0.onos</bundle>
        <bundle>mvn:org.onosproject/onos-security/@ONOS-VERSION</bundle>
    </feature>

</features>
