Home | History | Annotate | Download | only in 4.1.0.CR3
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <!--
      3   ~ Copyright 2012 The Netty Project
      4   ~
      5   ~ The Netty Project licenses this file to you under the Apache License,
      6   ~ version 2.0 (the "License"); you may not use this file except in compliance
      7   ~ with the License. You may obtain a copy of the License at:
      8   ~
      9   ~   http://www.apache.org/licenses/LICENSE-2.0
     10   ~
     11   ~ Unless required by applicable law or agreed to in writing, software
     12   ~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     13   ~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     14   ~ License for the specific language governing permissions and limitations
     15   ~ under the License.
     16   -->
     17 <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">
     18 
     19   <modelVersion>4.0.0</modelVersion>
     20   <parent>
     21     <groupId>org.sonatype.oss</groupId>
     22     <artifactId>oss-parent</artifactId>
     23     <version>9</version>
     24   </parent>
     25 
     26   <groupId>io.netty</groupId>
     27   <artifactId>netty-parent</artifactId>
     28   <packaging>pom</packaging>
     29   <version>4.1.0.CR3</version>
     30 
     31   <name>Netty</name>
     32   <url>http://netty.io/</url>
     33   <description>
     34     Netty is an asynchronous event-driven network application framework for
     35     rapid development of maintainable high performance protocol servers and
     36     clients.
     37   </description>
     38 
     39   <organization>
     40     <name>The Netty Project</name>
     41     <url>http://netty.io/</url>
     42   </organization>
     43 
     44   <licenses>
     45     <license>
     46       <name>Apache License, Version 2.0</name>
     47       <url>http://www.apache.org/licenses/LICENSE-2.0</url>
     48     </license>
     49   </licenses>
     50   <inceptionYear>2008</inceptionYear>
     51 
     52   <scm>
     53     <url>https://github.com/netty/netty</url>
     54     <connection>scm:git:git://github.com/netty/netty.git</connection>
     55     <developerConnection>scm:git:ssh://git (a] github.com/netty/netty.git</developerConnection>
     56     <tag>netty-4.1.0.CR3</tag>
     57   </scm>
     58 
     59   <developers>
     60     <developer>
     61       <id>netty.io</id>
     62       <name>The Netty Project Contributors</name>
     63       <email>netty (a] googlegroups.com</email>
     64       <url>http://netty.io/</url>
     65       <organization>The Netty Project</organization>
     66       <organizationUrl>http://netty.io/</organizationUrl>
     67     </developer>
     68   </developers>
     69 
     70   <profiles>
     71     <profile>
     72       <id>leak</id>
     73       <properties>
     74         <argLine.leak>-Dio.netty.leakDetectionLevel=paranoid -Dio.netty.leakDetection.maxRecord=32</argLine.leak>
     75       </properties>
     76     </profile>
     77     <profile>
     78       <id>noUnsafe</id>
     79       <properties>
     80         <argLine.noUnsafe>-Dio.netty.noUnsafe</argLine.noUnsafe>
     81       </properties>
     82     </profile>
     83     <profile>
     84       <id>coverage</id>
     85       <properties>
     86         <argLine.coverage>${jacoco.argLine}</argLine.coverage>
     87       </properties>
     88       <build>
     89         <plugins>
     90           <plugin>
     91             <groupId>org.jacoco</groupId>
     92             <artifactId>jacoco-maven-plugin</artifactId>
     93             <version>0.7.5.201505241946</version>
     94             <executions>
     95               <execution>
     96                 <id>jacoco-prepare-agent</id>
     97                 <goals>
     98                   <goal>prepare-agent</goal>
     99                 </goals>
    100                 <configuration>
    101                   <propertyName>jacoco.argLine</propertyName>
    102                 </configuration>
    103               </execution>
    104             </executions>
    105           </plugin>
    106         </plugins>
    107       </build>
    108     </profile>
    109     <profile>
    110       <id>jdk8</id>
    111       <activation>
    112         <jdk>[1.8,)</jdk>
    113       </activation>
    114       <properties>
    115         <!-- Our Javadoc has poor enough quality to fail the build thanks to JDK8 javadoc which got more strict. -->
    116         <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
    117       </properties>
    118     </profile>
    119     <profile>
    120       <id>linux</id>
    121       <activation>
    122         <os>
    123           <family>linux</family>
    124         </os>
    125       </activation>
    126       <modules>
    127         <module>transport-native-epoll</module>
    128       </modules>
    129     </profile>
    130     <!--
    131       Netty must be released from RHEL 6.7 x86_64 or compatible so that:
    132 
    133         1) we ship x86_64 version of epoll transport officially, and
    134         2) we ensure the ABI compatibility with older GLIBC versions.
    135 
    136            The shared library built on a distribution with newer GLIBC
    137            will not run on older distributions.
    138     -->
    139     <profile>
    140       <id>restricted-release</id>
    141       <build>
    142         <plugins>
    143           <plugin>
    144             <artifactId>maven-enforcer-plugin</artifactId>
    145             <executions>
    146               <execution>
    147                 <id>enforce-release-environment</id>
    148                 <goals>
    149                   <goal>enforce</goal>
    150                 </goals>
    151                 <configuration>
    152                   <rules>
    153                     <requireJavaVersion>
    154                       <!-- Enforce JDK 1.7 (and not 1.8+) for compilation. -->
    155                       <!-- See: https://github.com/netty/netty/issues/3548 -->
    156                       <version>[1.7.0, 1.8.0)</version>
    157                     </requireJavaVersion>
    158                     <requireProperty>
    159                       <regexMessage>
    160                         Release process must be performed on linux-x86_64.
    161                       </regexMessage>
    162                       <property>os.detected.classifier</property>
    163                       <regex>^linux-x86_64$</regex>
    164                     </requireProperty>
    165                     <requireFilesContent>
    166                       <message>
    167                         Release process must be performed on RHEL 6.7 or its derivatives.
    168                       </message>
    169                       <files>
    170                         <file>/etc/redhat-release</file>
    171                       </files>
    172                       <content>release 6.7</content>
    173                     </requireFilesContent>
    174                   </rules>
    175                 </configuration>
    176               </execution>
    177             </executions>
    178           </plugin>
    179         </plugins>
    180       </build>
    181     </profile>
    182     <profile>
    183       <!--
    184       This profile exists because either ALPN or NPN can exits on the class path at once, but not both.
    185       The JDK version is typically used to distinguish which should be used but there is some overlap
    186       where both could be used.  ALPN is the default and this profile is enabled with a -Dforcenpn=true arugument
    187       -->
    188       <id>forcenpn</id>
    189       <activation>
    190         <property>
    191           <name>forcenpn</name>
    192           <value>true</value>
    193         </property>
    194       </activation>
    195       <properties>
    196         <jetty.alpnAgent.option>forceNpn=true</jetty.alpnAgent.option>
    197       </properties>
    198     </profile>
    199   </profiles>
    200 
    201   <properties>
    202     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    203     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    204     <jboss.marshalling.version>1.3.18.GA</jboss.marshalling.version>
    205     <jetty.alpnAgent.version>1.0.1.Final</jetty.alpnAgent.version>
    206     <jetty.alpnAgent.path>${settings.localRepository}/kr/motd/javaagent/jetty-alpn-agent/${jetty.alpnAgent.version}/jetty-alpn-agent-${jetty.alpnAgent.version}.jar</jetty.alpnAgent.path>
    207     <argLine.common>
    208       -server
    209       -dsa -da -ea:io.netty...
    210       -XX:+AggressiveOpts
    211       -XX:+TieredCompilation
    212       -XX:+UseBiasedLocking
    213       -XX:+UseFastAccessorMethods
    214       -XX:+OptimizeStringConcat
    215       -XX:+HeapDumpOnOutOfMemoryError
    216     </argLine.common>
    217     <!-- Default to ALPN. See forcenpn profile to force NPN -->
    218     <argLine.alpnAgent>-javaagent:${jetty.alpnAgent.path}=${jetty.alpnAgent.option}</argLine.alpnAgent>
    219     <argLine.leak>-D_</argLine.leak> <!-- Overridden when 'leak' profile is active -->
    220     <argLine.noUnsafe>-D_</argLine.noUnsafe> <!-- Overridden when 'noUnsafe' profile is active -->
    221     <argLine.coverage>-D_</argLine.coverage> <!-- Overridden when 'coverage' profile is active -->
    222     <!-- Configure the os-maven-plugin extension to expand the classifier on                  -->
    223     <!-- Fedora-"like" systems. This is currently only used for the netty-tcnative dependency -->
    224     <os.detection.classifierWithLikes>fedora</os.detection.classifierWithLikes>
    225     <tcnative.artifactId>netty-tcnative</tcnative.artifactId>
    226     <tcnative.version>1.1.33.Fork14</tcnative.version>
    227     <tcnative.classifier>${os.detected.classifier}</tcnative.classifier>
    228     <epoll.classifier>${os.detected.name}-${os.detected.arch}</epoll.classifier>
    229   </properties>
    230 
    231   <modules>
    232     <module>common</module>
    233     <module>buffer</module>
    234     <module>codec</module>
    235     <module>codec-dns</module>
    236     <module>codec-haproxy</module>
    237     <module>codec-http</module>
    238     <module>codec-http2</module>
    239     <module>codec-memcache</module>
    240     <module>codec-mqtt</module>
    241     <module>codec-socks</module>
    242     <module>codec-stomp</module>
    243     <module>codec-xml</module>
    244     <module>resolver</module>
    245     <module>resolver-dns</module>
    246     <module>transport</module>
    247     <module>transport-rxtx</module>
    248     <module>transport-sctp</module>
    249     <module>transport-udt</module>
    250     <module>handler</module>
    251     <module>handler-proxy</module>
    252     <module>example</module>
    253     <module>testsuite</module>
    254     <module>testsuite-osgi</module>
    255     <module>microbench</module>
    256     <module>all</module>
    257     <module>tarball</module>
    258   </modules>
    259 
    260   <dependencyManagement>
    261     <dependencies>
    262       <!-- Byte code generator - completely optional -->
    263       <dependency>
    264         <groupId>org.javassist</groupId>
    265         <artifactId>javassist</artifactId>
    266         <version>3.19.0-GA</version>
    267         <scope>compile</scope>
    268         <optional>true</optional>
    269       </dependency>
    270 
    271       <!-- JBoss Marshalling - completely optional -->
    272       <dependency>
    273         <groupId>org.jboss.marshalling</groupId>
    274         <artifactId>jboss-marshalling</artifactId>
    275         <version>${jboss.marshalling.version}</version>
    276         <scope>compile</scope>
    277         <optional>true</optional>
    278       </dependency>
    279 
    280       <!-- SPDY and HTTP/2 - completely optional -->
    281       <dependency>
    282         <groupId>org.eclipse.jetty.npn</groupId>
    283         <artifactId>npn-api</artifactId>
    284         <version>1.1.1.v20141010</version>
    285         <scope>provided</scope> <!-- Provided by npn-boot -->
    286       </dependency>
    287       <dependency>
    288         <groupId>org.eclipse.jetty.alpn</groupId>
    289         <artifactId>alpn-api</artifactId>
    290         <version>1.1.2.v20150522</version>
    291         <scope>provided</scope> <!-- Provided by alpn-boot -->
    292       </dependency>
    293 
    294       <!-- Google Protocol Buffers - completely optional -->
    295       <dependency>
    296         <groupId>com.google.protobuf</groupId>
    297         <artifactId>protobuf-java</artifactId>
    298         <version>2.5.0</version>
    299       </dependency>
    300       <dependency>
    301         <groupId>com.google.protobuf.nano</groupId>
    302         <artifactId>protobuf-javanano</artifactId>
    303         <version>3.0.0-alpha-4</version>
    304       </dependency>
    305 
    306       <!-- Our own Tomcat Native fork - completely optional, used for acclerating SSL with OpenSSL. -->
    307       <dependency>
    308         <groupId>${project.groupId}</groupId>
    309         <artifactId>${tcnative.artifactId}</artifactId>
    310         <version>${tcnative.version}</version>
    311         <classifier>${tcnative.classifier}</classifier>
    312         <scope>compile</scope>
    313         <optional>true</optional>
    314       </dependency>
    315 
    316       <!--
    317         Bouncy Castle - completely optional, only needed when:
    318         - you generate a temporary self-signed certificate using SelfSignedCertificate, and
    319         - you don't use the JDK which doesn't provide sun.security.x509 package.
    320       -->
    321       <dependency>
    322         <groupId>org.bouncycastle</groupId>
    323         <artifactId>bcpkix-jdk15on</artifactId>
    324         <version>1.50</version>
    325         <scope>compile</scope>
    326         <optional>true</optional>
    327       </dependency>
    328 
    329       <dependency>
    330         <groupId>com.fasterxml</groupId>
    331         <artifactId>aalto-xml</artifactId>
    332         <version>0.9.9</version>
    333       </dependency>
    334 
    335       <dependency>
    336         <groupId>com.jcraft</groupId>
    337         <artifactId>jzlib</artifactId>
    338         <version>1.1.3</version>
    339       </dependency>
    340       <dependency>
    341         <groupId>com.ning</groupId>
    342         <artifactId>compress-lzf</artifactId>
    343         <version>1.0.3</version>
    344       </dependency>
    345       <dependency>
    346         <groupId>net.jpountz.lz4</groupId>
    347         <artifactId>lz4</artifactId>
    348         <version>1.3.0</version>
    349       </dependency>
    350       <dependency>
    351         <groupId>com.github.jponge</groupId>
    352         <artifactId>lzma-java</artifactId>
    353         <version>1.3</version>
    354       </dependency>
    355 
    356       <dependency>
    357         <groupId>org.rxtx</groupId>
    358         <artifactId>rxtx</artifactId>
    359         <version>2.1.7</version>
    360       </dependency>
    361 
    362       <dependency>
    363         <groupId>com.barchart.udt</groupId>
    364         <artifactId>barchart-udt-bundle</artifactId>
    365         <version>2.3.0</version>
    366       </dependency>
    367 
    368       <dependency>
    369         <groupId>javax.servlet</groupId>
    370         <artifactId>servlet-api</artifactId>
    371         <version>2.5</version>
    372       </dependency>
    373 
    374       <dependency>
    375         <groupId>org.slf4j</groupId>
    376         <artifactId>slf4j-api</artifactId>
    377         <version>1.7.5</version>
    378       </dependency>
    379       <dependency>
    380         <groupId>commons-logging</groupId>
    381         <artifactId>commons-logging</artifactId>
    382         <version>1.1.3</version>
    383       </dependency>
    384       <dependency>
    385         <groupId>log4j</groupId>
    386         <artifactId>log4j</artifactId>
    387         <version>1.2.17</version>
    388         <exclusions>
    389           <exclusion>
    390             <artifactId>mail</artifactId>
    391             <groupId>javax.mail</groupId>
    392           </exclusion>
    393           <exclusion>
    394             <artifactId>jms</artifactId>
    395             <groupId>javax.jms</groupId>
    396           </exclusion>
    397           <exclusion>
    398             <artifactId>jmxtools</artifactId>
    399             <groupId>com.sun.jdmk</groupId>
    400           </exclusion>
    401           <exclusion>
    402             <artifactId>jmxri</artifactId>
    403             <groupId>com.sun.jmx</groupId>
    404           </exclusion>
    405         </exclusions>
    406         <optional>true</optional>
    407       </dependency>
    408 
    409       <!-- Metrics providers -->
    410       <dependency>
    411         <groupId>com.yammer.metrics</groupId>
    412         <artifactId>metrics-core</artifactId>
    413         <version>2.2.0</version>
    414       </dependency>
    415 
    416       <!-- Common test dependencies -->
    417       <dependency>
    418         <groupId>junit</groupId>
    419         <artifactId>junit</artifactId>
    420         <version>4.12</version>
    421         <scope>test</scope>
    422       </dependency>
    423       <dependency>
    424         <groupId>org.hamcrest</groupId>
    425         <artifactId>hamcrest-library</artifactId>
    426         <version>1.3</version>
    427         <scope>test</scope>
    428       </dependency>
    429       <dependency>
    430         <groupId>org.easymock</groupId>
    431         <artifactId>easymock</artifactId>
    432         <version>3.2</version>
    433         <scope>test</scope>
    434       </dependency>
    435       <dependency>
    436         <groupId>org.easymock</groupId>
    437         <artifactId>easymockclassextension</artifactId>
    438         <version>3.2</version>
    439         <scope>test</scope>
    440       </dependency>
    441       <dependency>
    442         <groupId>org.jmock</groupId>
    443         <artifactId>jmock-junit4</artifactId>
    444         <version>2.6.0</version>
    445         <scope>test</scope>
    446         <exclusions>
    447           <exclusion>
    448             <groupId>junit</groupId>
    449             <artifactId>junit-dep</artifactId>
    450           </exclusion>
    451         </exclusions>
    452       </dependency>
    453       <dependency>
    454         <groupId>org.mockito</groupId>
    455         <artifactId>mockito-core</artifactId>
    456         <version>1.10.8</version>
    457         <scope>test</scope>
    458       </dependency>
    459       <dependency>
    460         <groupId>ch.qos.logback</groupId>
    461         <artifactId>logback-classic</artifactId>
    462         <version>1.0.13</version>
    463         <scope>test</scope>
    464       </dependency>
    465 
    466       <!-- Test dependencies for jboss marshalling encoder/decoder -->
    467       <dependency>
    468         <groupId>org.jboss.marshalling</groupId>
    469         <artifactId>jboss-marshalling-serial</artifactId>
    470         <version>${jboss.marshalling.version}</version>
    471         <scope>test</scope>
    472        </dependency>
    473       <dependency>
    474         <groupId>org.jboss.marshalling</groupId>
    475         <artifactId>jboss-marshalling-river</artifactId>
    476         <version>${jboss.marshalling.version}</version>
    477         <scope>test</scope>
    478       </dependency>
    479 
    480       <!-- Test dependencies for microbench -->
    481       <dependency>
    482         <groupId>com.google.caliper</groupId>
    483         <artifactId>caliper</artifactId>
    484         <version>0.5-rc1</version>
    485         <scope>test</scope>
    486       </dependency>
    487 
    488       <!-- Test dependency for Bzip2 compression codec -->
    489       <dependency>
    490         <groupId>org.apache.commons</groupId>
    491         <artifactId>commons-compress</artifactId>
    492         <version>1.9</version>
    493         <scope>test</scope>
    494       </dependency>
    495 
    496       <!-- Test dependency used by http/2 hpack -->
    497       <dependency>
    498         <groupId>com.google.code.gson</groupId>
    499         <artifactId>gson</artifactId>
    500         <version>2.3.1</version>
    501         <scope>test</scope>
    502       </dependency>
    503 
    504       <!-- Test suite dependency for generating a compressed heap dump file -->
    505       <dependency>
    506         <groupId>org.tukaani</groupId>
    507         <artifactId>xz</artifactId>
    508         <version>1.5</version>
    509       </dependency>
    510 
    511       <!-- Test dependency for resolver-dns -->
    512       <dependency>
    513         <groupId>org.apache.directory.server</groupId>
    514         <artifactId>apacheds-protocol-dns</artifactId>
    515         <version>1.5.7</version>
    516         <scope>test</scope>
    517       </dependency>
    518     </dependencies>
    519   </dependencyManagement>
    520 
    521   <dependencies>
    522     <!-- Enable Javassist support for all test runs -->
    523     <dependency>
    524       <groupId>org.javassist</groupId>
    525       <artifactId>javassist</artifactId>
    526       <scope>test</scope>
    527     </dependency>
    528 
    529     <!-- Testing frameworks and related dependencies -->
    530     <dependency>
    531       <groupId>junit</groupId>
    532       <artifactId>junit</artifactId>
    533       <scope>test</scope>
    534     </dependency>
    535     <dependency>
    536       <groupId>org.hamcrest</groupId>
    537       <artifactId>hamcrest-library</artifactId>
    538       <scope>test</scope>
    539     </dependency>
    540     <dependency>
    541       <groupId>org.easymock</groupId>
    542       <artifactId>easymock</artifactId>
    543       <scope>test</scope>
    544     </dependency>
    545     <dependency>
    546       <groupId>org.easymock</groupId>
    547       <artifactId>easymockclassextension</artifactId>
    548       <scope>test</scope>
    549     </dependency>
    550     <dependency>
    551       <groupId>org.jmock</groupId>
    552       <artifactId>jmock-junit4</artifactId>
    553       <scope>test</scope>
    554     </dependency>
    555     <dependency>
    556       <groupId>org.mockito</groupId>
    557       <artifactId>mockito-core</artifactId>
    558       <scope>test</scope>
    559     </dependency>
    560     <dependency>
    561       <groupId>ch.qos.logback</groupId>
    562       <artifactId>logback-classic</artifactId>
    563       <scope>test</scope>
    564     </dependency>
    565   </dependencies>
    566 
    567   <build>
    568     <extensions>
    569       <extension>
    570         <groupId>kr.motd.maven</groupId>
    571         <artifactId>os-maven-plugin</artifactId>
    572         <version>1.4.1.Final</version>
    573       </extension>
    574     </extensions>
    575 
    576     <plugins>
    577       <plugin>
    578         <artifactId>maven-enforcer-plugin</artifactId>
    579         <executions>
    580           <execution>
    581             <id>enforce-tools</id>
    582             <goals>
    583               <goal>enforce</goal>
    584             </goals>
    585             <configuration>
    586               <rules>
    587                 <requireJavaVersion>
    588                   <!-- Enforce JDK 1.7+ for compilation. -->
    589                   <!-- This is needed because of java.util.zip.Deflater and NIO UDP multicast. -->
    590                   <version>[1.7.0,)</version>
    591                 </requireJavaVersion>
    592                 <requireMavenVersion>
    593                   <version>[3.1.1,)</version>
    594                 </requireMavenVersion>
    595               </rules>
    596             </configuration>
    597           </execution>
    598         </executions>
    599       </plugin>
    600       <plugin>
    601         <artifactId>maven-compiler-plugin</artifactId>
    602         <version>3.1</version>
    603         <configuration>
    604           <compilerVersion>1.7</compilerVersion>
    605           <fork>true</fork>
    606           <source>1.6</source>
    607           <target>1.6</target>
    608           <debug>true</debug>
    609           <optimize>true</optimize>
    610           <showDeprecation>true</showDeprecation>
    611           <showWarnings>true</showWarnings>
    612           <compilerArgument>-Xlint:-options</compilerArgument>
    613           <!-- XXX: maven-release-plugin complains - MRELEASE-715 -->
    614           <!--
    615           <compilerArguments>
    616             <Xlint:-options />
    617             <Xlint:unchecked />
    618             <Xlint:deprecation />
    619           </compilerArguments>
    620           -->
    621           <meminitial>256m</meminitial>
    622           <maxmem>1024m</maxmem>
    623           <excludes>
    624             <exclude>**/package-info.java</exclude>
    625           </excludes>
    626         </configuration>
    627       </plugin>
    628       <plugin>
    629         <!-- ensure that only methods available in java 1.6 can
    630              be used even when compiling with java 1.7+ -->
    631         <groupId>org.codehaus.mojo</groupId>
    632         <artifactId>animal-sniffer-maven-plugin</artifactId>
    633         <version>1.9</version>
    634         <dependencies>
    635             <!-- Upgrade ASM and support Java 8 bytecode -->
    636             <dependency>
    637                 <groupId>org.ow2.asm</groupId>
    638                 <artifactId>asm-all</artifactId>
    639                 <version>5.0.3</version>
    640             </dependency>
    641         </dependencies>
    642         <configuration>
    643           <signature>
    644             <groupId>org.codehaus.mojo.signature</groupId>
    645             <artifactId>java16</artifactId>
    646             <version>1.0</version>
    647           </signature>
    648           <ignores>
    649             <ignore>sun.misc.Unsafe</ignore>
    650             <ignore>sun.misc.Cleaner</ignore>
    651             <ignore>sun.nio.ch.DirectBuffer</ignore>
    652 
    653             <ignore>java.util.zip.Deflater</ignore>
    654 
    655             <!-- Used for NIO UDP multicast -->
    656             <ignore>java.nio.channels.DatagramChannel</ignore>
    657             <ignore>java.nio.channels.MembershipKey</ignore>
    658             <ignore>java.net.StandardProtocolFamily</ignore>
    659             <ignore>java.nio.channels.spi.SelectorProvider</ignore>
    660 
    661             <!-- Self-signed certificate generation -->
    662             <ignore>sun.security.x509.AlgorithmId</ignore>
    663             <ignore>sun.security.x509.CertificateAlgorithmId</ignore>
    664             <ignore>sun.security.x509.CertificateIssuerName</ignore>
    665             <ignore>sun.security.x509.CertificateSerialNumber</ignore>
    666             <ignore>sun.security.x509.CertificateSubjectName</ignore>
    667             <ignore>sun.security.x509.CertificateValidity</ignore>
    668             <ignore>sun.security.x509.CertificateVersion</ignore>
    669             <ignore>sun.security.x509.CertificateX509Key</ignore>
    670             <ignore>sun.security.x509.X500Name</ignore>
    671             <ignore>sun.security.x509.X509CertInfo</ignore>
    672             <ignore>sun.security.x509.X509CertImpl</ignore>
    673 
    674             <!-- SSLSession implementation -->
    675             <ignore>javax.net.ssl.SSLEngine</ignore>
    676             <ignore>javax.net.ssl.X509ExtendedTrustManager</ignore>
    677             <ignore>javax.net.ssl.SSLParameters</ignore>
    678             <ignore>java.security.AlgorithmConstraints</ignore>
    679             <ignore>java.security.cert.CertificateRevokedException</ignore>
    680 
    681             <ignore>java.util.concurrent.ConcurrentLinkedDeque</ignore>
    682           </ignores>
    683         </configuration>
    684         <executions>
    685           <execution>
    686             <phase>process-classes</phase>
    687             <goals>
    688               <goal>check</goal>
    689             </goals>
    690           </execution>
    691         </executions>
    692       </plugin>
    693       <plugin>
    694         <artifactId>maven-checkstyle-plugin</artifactId>
    695         <version>2.10</version>
    696         <executions>
    697           <execution>
    698             <id>check-style</id>
    699             <goals>
    700               <goal>check</goal>
    701             </goals>
    702             <phase>validate</phase>
    703             <configuration>
    704               <consoleOutput>true</consoleOutput>
    705               <logViolationsToConsole>true</logViolationsToConsole>
    706               <failsOnError>true</failsOnError>
    707               <failOnViolation>true</failOnViolation>
    708               <configLocation>io/netty/checkstyle.xml</configLocation>
    709               <includeTestSourceDirectory>true</includeTestSourceDirectory>
    710             </configuration>
    711           </execution>
    712         </executions>
    713         <dependencies>
    714           <dependency>
    715             <groupId>${project.groupId}</groupId>
    716             <artifactId>netty-build</artifactId>
    717             <version>21</version>
    718           </dependency>
    719         </dependencies>
    720       </plugin>
    721       <!-- Download the npn-boot.jar in advance to add it to the boot classpath. -->
    722       <plugin>
    723         <artifactId>maven-dependency-plugin</artifactId>
    724         <executions>
    725           <execution>
    726             <id>get-jetty-alpn-agent</id>
    727             <phase>validate</phase>
    728             <goals>
    729               <goal>get</goal>
    730             </goals>
    731             <configuration>
    732               <groupId>kr.motd.javaagent</groupId>
    733               <artifactId>jetty-alpn-agent</artifactId>
    734               <version>${jetty.alpnAgent.version}</version>
    735             </configuration>
    736           </execution>
    737         </executions>
    738       </plugin>
    739       <plugin>
    740         <artifactId>maven-surefire-plugin</artifactId>
    741         <configuration>
    742           <includes>
    743              <include>**/*Test*.java</include>
    744              <include>**/*Benchmark*.java</include>
    745           </includes>
    746           <excludes>
    747             <exclude>**/Abstract*</exclude>
    748             <exclude>**/TestUtil*</exclude>
    749           </excludes>
    750           <runOrder>random</runOrder>
    751           <argLine>${argLine.common} ${argLine.alpnAgent} ${argLine.leak} ${argLine.coverage} ${argLine.noUnsafe}</argLine>
    752         </configuration>
    753       </plugin>
    754       <!-- always produce osgi bundles -->
    755       <plugin>
    756         <groupId>org.apache.felix</groupId>
    757         <artifactId>maven-bundle-plugin</artifactId>
    758         <version>2.4.0</version>
    759         <executions>
    760           <execution>
    761             <id>generate-manifest</id>
    762             <phase>process-classes</phase>
    763             <goals>
    764               <goal>manifest</goal>
    765             </goals>
    766             <configuration>
    767               <supportedProjectTypes>
    768                 <supportedProjectType>jar</supportedProjectType>
    769                 <supportedProjectType>bundle</supportedProjectType>
    770               </supportedProjectTypes>
    771               <instructions>
    772                 <Export-Package>${project.groupId}.*</Export-Package>
    773                 <!-- enforce JVM vendor package as optional -->
    774                 <Import-Package>sun.misc.*;resolution:=optional,sun.nio.ch;resolution:=optional,sun.security.*;resolution:=optional,org.eclipse.jetty.npn;version="[1,2)";resolution:=optional,org.eclipse.jetty.alpn;version="[1,2)";resolution:=optional,*</Import-Package>
    775                 <!-- override "internal" private package convention -->
    776                 <Private-Package>!*</Private-Package>
    777               </instructions>
    778             </configuration>
    779           </execution>
    780         </executions>
    781       </plugin>
    782 
    783       <plugin>
    784         <groupId>org.codehaus.mojo</groupId>
    785         <artifactId>build-helper-maven-plugin</artifactId>
    786         <version>1.8</version>
    787         <executions>
    788           <execution>
    789             <id>parse-version</id>
    790             <goals>
    791               <goal>parse-version</goal>
    792             </goals>
    793           </execution>
    794         </executions>
    795       </plugin>
    796 
    797       <plugin>
    798         <artifactId>maven-source-plugin</artifactId>
    799         <version>2.2.1</version>
    800         <!-- Eclipse-related OSGi manifests
    801              See https://github.com/netty/netty/issues/3886
    802              More information: http://rajakannappan.blogspot.ie/2010/03/automating-eclipse-source-bundle.html -->
    803         <configuration>
    804           <archive>
    805             <manifestEntries>
    806               <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
    807               <Bundle-Name>${project.name}</Bundle-Name>
    808               <Bundle-SymbolicName>${project.groupId}.${project.artifactId}.source</Bundle-SymbolicName>
    809               <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
    810               <Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
    811               <Eclipse-SourceBundle>${project.groupId}.${project.artifactId};version="${parsedVersion.osgiVersion}";roots:="."</Eclipse-SourceBundle>
    812             </manifestEntries>
    813           </archive>
    814         </configuration>
    815 
    816         <executions>
    817           <!--
    818             ~ This workaround prevents Maven from executing the 'generate-sources' phase twice.
    819             ~ See http://jira.codehaus.org/browse/MSOURCES-13
    820             ~ and http://blog.peterlynch.ca/2010/05/maven-how-to-prevent-generate-sources.html
    821             -->
    822           <execution>
    823             <id>attach-sources</id>
    824             <phase>invalid</phase>
    825             <goals>
    826               <goal>jar</goal>
    827             </goals>
    828           </execution>
    829           <execution>
    830             <id>attach-sources-no-fork</id>
    831             <phase>package</phase>
    832             <goals>
    833               <goal>jar-no-fork</goal>
    834             </goals>
    835           </execution>
    836         </executions>
    837       </plugin>
    838       <plugin>
    839         <artifactId>maven-javadoc-plugin</artifactId>
    840         <version>2.9.1</version>
    841         <configuration>
    842           <detectOfflineLinks>false</detectOfflineLinks>
    843           <breakiterator>true</breakiterator>
    844           <version>false</version>
    845           <author>false</author>
    846           <keywords>true</keywords>
    847         </configuration>
    848       </plugin>
    849       <plugin>
    850         <artifactId>maven-deploy-plugin</artifactId>
    851         <version>2.7</version>
    852         <configuration>
    853           <retryFailedDeploymentCount>10</retryFailedDeploymentCount>
    854         </configuration>
    855       </plugin>
    856       <plugin>
    857         <artifactId>maven-release-plugin</artifactId>
    858         <version>2.4.2</version>
    859         <configuration>
    860           <useReleaseProfile>false</useReleaseProfile>
    861           <arguments>-P restricted-release,sonatype-oss-release,full</arguments>
    862           <autoVersionSubmodules>true</autoVersionSubmodules>
    863           <allowTimestampedSnapshots>false</allowTimestampedSnapshots>
    864           <tagNameFormat>netty-@{project.version}</tagNameFormat>
    865         </configuration>
    866         <dependencies>
    867           <dependency>
    868             <groupId>org.apache.maven.scm</groupId>
    869             <artifactId>maven-scm-api</artifactId>
    870             <version>1.8.1</version>
    871           </dependency>
    872           <dependency>
    873             <groupId>org.apache.maven.scm</groupId>
    874             <artifactId>maven-scm-provider-gitexe</artifactId>
    875             <version>1.8.1</version>
    876           </dependency>
    877         </dependencies>
    878       </plugin>
    879 
    880       <!-- Ensure to put maven-antrun-plugin at the end of the plugin list
    881            so that they are run lastly in the same phase. -->
    882       <plugin>
    883         <artifactId>maven-antrun-plugin</artifactId>
    884         <executions>
    885           <!-- Generate the version properties for all artifacts. -->
    886           <execution>
    887             <id>write-version-properties</id>
    888             <phase>initialize</phase>
    889             <goals>
    890               <goal>run</goal>
    891             </goals>
    892             <configuration>
    893               <target>
    894                 <taskdef resource="net/sf/antcontrib/antlib.xml" />
    895 
    896                 <!-- Get the information about the latest commit -->
    897                 <exec executable="git" outputproperty="gitOutput.lastCommit" resultproperty="gitExitCode.lastCommit" failonerror="false" failifexecutionfails="false">
    898                   <arg value="log" />
    899                   <arg value="-1" />
    900                   <arg value="--format=format:%h %H %cd" />
    901                   <arg value="--date=iso" />
    902                 </exec>
    903                 <propertyregex property="shortCommitHash" input="${gitOutput.lastCommit}" regexp="^([0-9a-f]+) .*$" select="\1" casesensitive="true" defaultValue="0" />
    904                 <propertyregex property="longCommitHash" input="${gitOutput.lastCommit}" regexp="^[0-9a-f]+ ([0-9a-f]{40}) .*$" select="\1" casesensitive="true" defaultValue="0000000000000000000000000000000000000000" />
    905                 <propertyregex property="commitDate" input="${gitOutput.lastCommit}" regexp="^[0-9a-f]+ [0-9a-f]{40} (.*)$" select="\1" casesensitive="true" defaultValue="1970-01-01 00:00:00 +0000" />
    906 
    907                 <!-- Get the information abount whether the repository is clean or dirty -->
    908                 <exec executable="git" outputproperty="gitOutput.repoStatus" resultproperty="gitExitCode.repoStatus" failonerror="false" failifexecutionfails="false">
    909                   <arg value="status" />
    910                   <arg value="--porcelain" />
    911                 </exec>
    912                 <if>
    913                   <equals arg2="0" arg1="${gitExitCode.repoStatus}" />
    914                   <then>
    915                     <if>
    916                       <equals arg2="" arg1="${gitOutput.repoStatus}" />
    917                       <then>
    918                         <property name="repoStatus" value="clean" />
    919                       </then>
    920                       <else>
    921                         <property name="repoStatus" value="dirty" />
    922                       </else>
    923                     </if>
    924                   </then>
    925                   <else>
    926                     <property name="repoStatus" value="unknown" />
    927                   </else>
    928                 </if>
    929 
    930                 <!-- Print the obtained commit information. -->
    931                 <echo>Current commit: ${shortCommitHash} on ${commitDate}</echo>
    932 
    933                 <!-- Generate the .properties file. -->
    934                 <!--
    935                 <property name="metaInfDir" value="${project.basedir}/src/main/resources/META-INF" />
    936                 -->
    937                 <property name="metaInfDir" value="${project.build.outputDirectory}/META-INF" />
    938                 <property name="versionPropFile" value="${metaInfDir}/${project.groupId}.versions.properties" />
    939                 <mkdir dir="${metaInfDir}" />
    940                 <delete file="${versionPropFile}" quiet="true" />
    941 
    942                 <propertyfile file="${versionPropFile}" comment="Generated by netty-parent/pom.xml">
    943                   <entry key="${project.artifactId}.version" value="${project.version}" />
    944                   <entry key="${project.artifactId}.buildDate" type="date" value="now" pattern="yyyy-MM-dd HH:mm:ss Z" />
    945                   <entry key="${project.artifactId}.commitDate" value="${commitDate}" />
    946                   <entry key="${project.artifactId}.shortCommitHash" value="${shortCommitHash}" />
    947                   <entry key="${project.artifactId}.longCommitHash" value="${longCommitHash}" />
    948                   <entry key="${project.artifactId}.repoStatus" value="${repoStatus}" />
    949                 </propertyfile>
    950               </target>
    951             </configuration>
    952           </execution>
    953         </executions>
    954         <dependencies>
    955           <dependency>
    956             <groupId>org.apache.ant</groupId>
    957             <artifactId>ant</artifactId>
    958             <version>1.8.2</version>
    959           </dependency>
    960           <dependency>
    961             <groupId>org.apache.ant</groupId>
    962             <artifactId>ant-launcher</artifactId>
    963             <version>1.8.2</version>
    964           </dependency>
    965           <dependency>
    966             <groupId>ant-contrib</groupId>
    967             <artifactId>ant-contrib</artifactId>
    968             <version>1.0b3</version>
    969             <exclusions>
    970               <exclusion>
    971                 <groupId>ant</groupId>
    972                 <artifactId>ant</artifactId>
    973               </exclusion>
    974             </exclusions>
    975           </dependency>
    976         </dependencies>
    977       </plugin>
    978     </plugins>
    979 
    980     <pluginManagement>
    981       <plugins>
    982         <plugin>
    983           <artifactId>maven-enforcer-plugin</artifactId>
    984           <version>1.3.1</version>
    985           <dependencies>
    986             <!-- Provides the 'requireFilesContent' enforcer rule. -->
    987             <dependency>
    988               <groupId>com.ceilfors.maven.plugin</groupId>
    989               <artifactId>enforcer-rules</artifactId>
    990               <version>1.1.0</version>
    991             </dependency>
    992           </dependencies>
    993         </plugin>
    994         <!-- keep surefire and failsafe in sync -->
    995         <plugin>
    996           <artifactId>maven-surefire-plugin</artifactId>
    997           <version>2.15</version>
    998         </plugin>
    999         <!-- keep surefire and failsafe in sync -->
   1000         <plugin>
   1001           <artifactId>maven-failsafe-plugin</artifactId>
   1002           <version>2.15</version>
   1003         </plugin>
   1004         <plugin>
   1005           <artifactId>maven-clean-plugin</artifactId>
   1006           <version>2.5</version>
   1007         </plugin>
   1008         <plugin>
   1009           <artifactId>maven-resources-plugin</artifactId>
   1010           <version>2.6</version>
   1011         </plugin>
   1012         <plugin>
   1013           <artifactId>maven-jar-plugin</artifactId>
   1014           <version>2.5</version>
   1015           <executions>
   1016             <execution>
   1017               <id>default-jar</id>
   1018               <configuration>
   1019                 <archive>
   1020                   <manifest>
   1021                     <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
   1022                   </manifest>
   1023                   <index>true</index>
   1024                   <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
   1025                 </archive>
   1026               </configuration>
   1027             </execution>
   1028           </executions>
   1029         </plugin>
   1030         <plugin>
   1031           <artifactId>maven-dependency-plugin</artifactId>
   1032           <version>2.8</version>
   1033         </plugin>
   1034         <plugin>
   1035           <artifactId>maven-assembly-plugin</artifactId>
   1036           <version>2.4</version>
   1037         </plugin>
   1038         <plugin>
   1039           <!-- Do NOT upgrade -->
   1040           <artifactId>maven-jxr-plugin</artifactId>
   1041           <version>2.2</version>
   1042         </plugin>
   1043         <plugin>
   1044           <artifactId>maven-antrun-plugin</artifactId>
   1045           <version>1.7</version>
   1046           <dependencies>
   1047             <dependency>
   1048               <groupId>ant-contrib</groupId>
   1049               <artifactId>ant-contrib</artifactId>
   1050               <version>1.0b3</version>
   1051               <exclusions>
   1052                 <exclusion>
   1053                   <groupId>ant</groupId>
   1054                   <artifactId>ant</artifactId>
   1055                 </exclusion>
   1056               </exclusions>
   1057             </dependency>
   1058           </dependencies>
   1059         </plugin>
   1060         <plugin>
   1061           <groupId>org.codehaus.mojo</groupId>
   1062           <artifactId>build-helper-maven-plugin</artifactId>
   1063           <version>1.8</version>
   1064         </plugin>
   1065         <plugin>
   1066           <groupId>org.fusesource.hawtjni</groupId>
   1067           <artifactId>maven-hawtjni-plugin</artifactId>
   1068           <version>1.10</version>
   1069         </plugin>
   1070         <plugin>
   1071           <groupId>kr.motd.maven</groupId>
   1072           <artifactId>exec-maven-plugin</artifactId>
   1073           <version>1.0.0.Final</version>
   1074         </plugin>
   1075 
   1076         <!-- Workaround for the 'M2E plugin execution not covered' problem.
   1077              See: http://wiki.eclipse.org/M2E_plugin_execution_not_covered -->
   1078         <plugin>
   1079           <groupId>org.eclipse.m2e</groupId>
   1080           <artifactId>lifecycle-mapping</artifactId>
   1081           <version>1.0.0</version>
   1082           <configuration>
   1083             <lifecycleMappingMetadata>
   1084               <pluginExecutions>
   1085                 <pluginExecution>
   1086                   <pluginExecutionFilter>
   1087                     <groupId>org.apache.maven.plugins</groupId>
   1088                     <artifactId>maven-antrun-plugin</artifactId>
   1089                     <versionRange>[1.7,)</versionRange>
   1090                     <goals>
   1091                       <goal>run</goal>
   1092                     </goals>
   1093                   </pluginExecutionFilter>
   1094                   <action>
   1095                     <ignore />
   1096                   </action>
   1097                 </pluginExecution>
   1098                 <pluginExecution>
   1099                   <pluginExecutionFilter>
   1100                     <groupId>org.apache.maven.plugins</groupId>
   1101                     <artifactId>maven-checkstyle-plugin</artifactId>
   1102                     <versionRange>[1.0,)</versionRange>
   1103                     <goals>
   1104                       <goal>check</goal>
   1105                     </goals>
   1106                   </pluginExecutionFilter>
   1107                   <action>
   1108                     <ignore />
   1109                   </action>
   1110                 </pluginExecution>
   1111                 <pluginExecution>
   1112                   <pluginExecutionFilter>
   1113                     <groupId>org.apache.maven.plugins</groupId>
   1114                     <artifactId>maven-enforcer-plugin</artifactId>
   1115                     <versionRange>[1.0,)</versionRange>
   1116                     <goals>
   1117                       <goal>enforce</goal>
   1118                     </goals>
   1119                   </pluginExecutionFilter>
   1120                   <action>
   1121                     <ignore />
   1122                   </action>
   1123                 </pluginExecution>
   1124                 <pluginExecution>
   1125                   <pluginExecutionFilter>
   1126                     <groupId>org.apache.maven.plugins</groupId>
   1127                     <artifactId>maven-clean-plugin</artifactId>
   1128                     <versionRange>[1.0,)</versionRange>
   1129                     <goals>
   1130                       <goal>clean</goal>
   1131                     </goals>
   1132                   </pluginExecutionFilter>
   1133                   <action>
   1134                     <ignore />
   1135                   </action>
   1136                 </pluginExecution>
   1137                 <pluginExecution>
   1138                   <pluginExecutionFilter>
   1139                     <groupId>org.apache.felix</groupId>
   1140                     <artifactId>maven-bundle-plugin</artifactId>
   1141                     <versionRange>[2.4,)</versionRange>
   1142                     <goals>
   1143                       <goal>manifest</goal>
   1144                     </goals>
   1145                   </pluginExecutionFilter>
   1146                   <action>
   1147                     <ignore />
   1148                   </action>
   1149                 </pluginExecution>
   1150                 <pluginExecution>
   1151                   <pluginExecutionFilter>
   1152                     <groupId>org.fusesource.hawtjni</groupId>
   1153                     <artifactId>maven-hawtjni-plugin</artifactId>
   1154                     <versionRange>[1.10,)</versionRange>
   1155                     <goals>
   1156                       <goal>generate</goal>
   1157                       <goal>build</goal>
   1158                     </goals>
   1159                   </pluginExecutionFilter>
   1160                   <action>
   1161                     <ignore />
   1162                   </action>
   1163                 </pluginExecution>
   1164                 <pluginExecution>
   1165                   <pluginExecutionFilter>
   1166                     <groupId>org.apache.maven.plugins</groupId>
   1167                     <artifactId>maven-dependency-plugin</artifactId>
   1168                     <versionRange>[2.8,)</versionRange>
   1169                     <goals>
   1170                       <goal>get</goal>
   1171                       <goal>copy</goal>
   1172                       <goal>properties</goal>
   1173                     </goals>
   1174                   </pluginExecutionFilter>
   1175                   <action>
   1176                     <ignore />
   1177                   </action>
   1178                 </pluginExecution>
   1179               </pluginExecutions>
   1180             </lifecycleMappingMetadata>
   1181           </configuration>
   1182         </plugin>
   1183       </plugins>
   1184     </pluginManagement>
   1185   </build>
   1186 </project>
   1187