<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  ~ Copyright 2015-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.1" name="${project.artifactId}-${project.version}">
    <feature name="${project.artifactId}" version="${project.version}"
             description="${project.description}">
        <feature>onos-api</feature>
        <bundle>mvn:com.google.protobuf/protobuf-java/3.0.0-beta-2</bundle>
        <bundle>mvn:io.netty/netty-common/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-buffer/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-transport/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-handler/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-codec/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-codec-http/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-codec-http2/4.1.0.CR3</bundle>
        <bundle>mvn:io.netty/netty-resolver/4.1.0.CR3</bundle>
        <!-- TODO: Create shaded jar for these. -->
        <bundle>wrap:mvn:com.google.auth/google-auth-library-credentials/0.3.0$Bundle-SymbolicName=com.google.auth.google-auth-library-credentials&amp;Bundle-Version=0.3.0</bundle>
        <bundle>wrap:mvn:com.google.auth/google-auth-library-oauth2-http/0.3.0$Bundle-SymbolicName=com.google.auth.google-auth-library-oauth2-http&amp;Bundle-Version=0.3.0</bundle>
        <bundle>wrap:mvn:io.grpc/grpc-core/0.13.2$Bundle-SymbolicName=io.grpc.grpc-core&amp;Bundle-Version=0.13.2&amp;</bundle>
        <bundle>wrap:mvn:io.grpc/grpc-protobuf/0.13.2$Bundle-SymbolicName=io.grpc.grpc-protobuf&amp;Bundle-Version=0.13.2&amp;</bundle>
        <bundle>wrap:mvn:io.grpc/grpc-stub/0.13.2$Bundle-SymbolicName=io.grpc.grpc-stub&amp;Bundle-Version=0.13.2&amp;</bundle>
        <bundle>wrap:mvn:io.grpc/grpc-netty/0.13.2$Bundle-SymbolicName=io.grpc.grpc-netty&amp;Bundle-Version=0.13.2&amp;Import-Package=io.netty.*;version=4.1.0.CR3,*</bundle>
        <bundle>wrap:mvn:io.grpc/grpc-auth/0.13.2$Bundle-SymbolicName=io.grpc.grpc-auth&amp;Bundle-Version=0.13.2&amp;Import-Package=javax.net.ssl,*</bundle>
        <bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
    </feature>
</features>
