<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  ~ Copyright 2016-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="${project.artifactId}-${project.version}">
    <repository>mvn:${project.groupId}/onos-app-tenbi-yangmodel/${project.version}/xml/features</repository>
    <feature name="${project.artifactId}" version="${project.version}"
             description="${project.description}">
        <feature>onos-api</feature>
        <feature>onos-app-tenbi-yangmodel</feature>
        <bundle>mvn:${project.groupId}/onos-restsb-api/${project.version}</bundle>
        <bundle>mvn:org.apache.httpcomponents/httpclient-osgi/4.5.1</bundle>
        <bundle>mvn:org.apache.httpcomponents/httpcore-osgi/4.4.4</bundle>

        <bundle>mvn:${project.groupId}/onos-restconf-client-api/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-restconf-client-ctl/${project.version}</bundle>

        <bundle>mvn:${project.groupId}/onos-app-tetunnel-api/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-app-tetopology/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-app-yms-api/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-app-tenbi-utils/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-restconf-server-utils/${project.version}</bundle>

        <bundle>mvn:${project.groupId}/onos-ietfte-provider-utils/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-ietfte-provider-topology/${project.version}</bundle>
        <bundle>mvn:${project.groupId}/onos-ietfte-provider-tunnel/${project.version}</bundle>
    </feature>
</features>

