<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2014 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.
  -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.onosproject</groupId>
        <artifactId>onlab-utils</artifactId>
        <version>1.3.0-rc1</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>onlab-jnc-osgi</artifactId>
    <packaging>bundle</packaging>

    <description>TailF JNC and Ganymed SSH2 packaged as OSGi bundle</description>

    <dependencies>
        <dependency>
            <groupId>ch.ethz.ganymed</groupId>
            <artifactId>ganymed-ssh2</artifactId>
            <version>262</version>
        </dependency>

        <dependency>
            <!-- TODO: change this appropriately when the official TailF JNC is available -->
            <groupId>org.onosproject</groupId>
            <artifactId>jnc</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <filters>
                        <filter>
                            <artifact>com.google.guava:guava</artifact>
                            <excludes>
                                <exclude>**</exclude>
                            </excludes>
                        </filter>
                    </filters>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        <Export-Package>
                            com.tailf.jnc,
                            ch.ethz.ssh2,
                            ch.ethz.ssh2.auth,
                            ch.ethz.ssh2.channel,
                            ch.ethz.ssh2.crypto,
                            ch.ethz.ssh2.crypto.cipher,
                            ch.ethz.ssh2.crypto.dh,
                            ch.ethz.ssh2.crypto.digest,
                            ch.ethz.ssh2.log,
                            ch.ethz.ssh2.packets,
                            ch.ethz.ssh2.server,
                            ch.ethz.ssh2.sftp,
                            ch.ethz.ssh2.signature,
                            ch.ethz.ssh2.transport,
                            ch.ethz.ssh2.util
                        </Export-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
