<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2012 The Netty Project
  ~
  ~ The Netty Project licenses this file to you 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>io.netty</groupId>
    <artifactId>netty-parent</artifactId>
    <version>4.0.18.Final</version>
  </parent>

  <artifactId>netty-example</artifactId>
  <packaging>jar</packaging>

  <name>Netty/Example</name>

  <properties>
    <npn.version>1.1.6.v20130911</npn.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-transport</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-transport-sctp</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-handler</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-codec-http</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-codec-socks</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
    </dependency>
    <dependency>
      <groupId>com.jcraft</groupId>
      <artifactId>jzlib</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.javassist</groupId>
      <artifactId>javassist</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.npn</groupId>
      <artifactId>npn-api</artifactId>
    </dependency>

    <!-- see https://github.com/netty/netty/issues/874 -->
    <dependency>
      <groupId>com.yammer.metrics</groupId>
      <artifactId>metrics-core</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-transport-udt</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>netty-transport-rxtx</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.mortbay.jetty.npn</groupId>
                  <artifactId>npn-boot</artifactId>
                  <version>${npn.version}</version>
                  <type>jar</type>
                  <overWrite>false</overWrite>
                  <outputDirectory>${project.build.directory}/npn</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>spdy-server</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <configuration>
              <executable>${java.home}/bin/java</executable>
              <arguments>
                <argument>-Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar</argument>
                <argument>-classpath</argument>
                <classpath />
                <argument>io.netty.example.spdy.server.SpdyServer</argument>
              </arguments>
              <classpathScope>runtime</classpathScope>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>spdy-client</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <configuration>
              <executable>${java.home}/bin/java</executable>
              <arguments>
                <argument>-Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar</argument>
                <argument>-classpath</argument>
                <classpath />
                <argument>io.netty.example.spdy.client.SpdyClient</argument>
              </arguments>
              <classpathScope>runtime</classpathScope>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
      profiles for the various npn vs OpenJDK version as found on:
      http://www.eclipse.org/jetty/documentation/current/npn-chapter.html#npn-versions
    -->
    <profile>
      <id>7u9</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_9</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.3.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u10</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_10</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.3.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u11</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_11</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.3.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u13</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_13</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.4.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u15</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_15</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.5.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u17</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_17</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.5.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u21</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_21</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.5.v20130313</npn.version>
      </properties>
    </profile>
    <profile>
      <id>7u25</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_25</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.5.v20130313</npn.version>
      </properties>
    </profile>
  </profiles>
</project>

