<?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.6.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>onlab-thirdparty</artifactId>
  <packaging>bundle</packaging>

  <description>ONLab third-party dependencies</description>

  <dependencies>
    <dependency>
        <groupId>io.atomix.catalyst</groupId>
        <artifactId>catalyst-transport</artifactId>
        <version>${catalyst.version}</version>
    </dependency>

    <dependency>
        <groupId>io.atomix.catalyst</groupId>
        <artifactId>catalyst-serializer</artifactId>
        <version>${catalyst.version}</version>
    </dependency>

    <dependency>
        <groupId>io.atomix</groupId>
        <artifactId>atomix</artifactId>
        <version>${atomix.version}</version>
    </dependency>

    <dependency>
        <groupId>io.atomix.copycat</groupId>
        <artifactId>copycat-client</artifactId>
        <version>${atomix.copycat.version}</version>
    </dependency>

    <dependency>
        <groupId>io.atomix.copycat</groupId>
        <artifactId>copycat-server</artifactId>
        <version>${atomix.copycat.version}</version>
    </dependency>

    <dependency>
      <!-- FIXME once fixes get merged to upstream -->
      <groupId>org.onosproject</groupId>
        <artifactId>copycat-api</artifactId>
        <version>${copycat.version}</version>
    </dependency>

    <dependency>
      <!-- FIXME once fixes get merged to upstream -->
      <groupId>org.onosproject</groupId>
        <artifactId>copycat-core</artifactId>
        <version>${copycat.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <configuration>
          <createSourcesJar>true</createSourcesJar>

          <artifactSet>
            <excludes>
              <!-- exclude OSGi-ready transitive dependencies -->
              <exclude>com.google.guava:guava</exclude>
              <exclude>com.esotericsoftware:*</exclude>
              <exclude>org.ow2.asm:asm</exclude>
              <exclude>org.objenesis:objenesis</exclude>
              <exclude>io.netty:*</exclude>
              <exclude>commons-io:commons-io</exclude>
            </excludes>
          </artifactSet>

          <filters>
            <filter>
              <artifact>org.onosproject:copycat*</artifact>
                <includes>
                  <include>**</include>
                </includes>
                <excludes>
                  <exclude>net/kuujo/copycat/**</exclude>
                </excludes>
            </filter>

            <filter>
              <artifact>io.atomix:atomix-all</artifact>
                <includes>
                  <include>**</include>
                </includes>
            </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>
              net.kuujo.copycat.*;io.atomix.*
            </Export-Package>
            <Import-Package>
              !sun.nio.ch,!sun.misc,*
            </Import-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
