2009-01-12 12:45:50 +01:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
2012-06-04 22:31:44 +02:00
|
|
|
~ Copyright 2012 The Netty Project
|
2011-12-09 06:18:34 +01:00
|
|
|
~
|
|
|
|
~ 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:
|
|
|
|
~
|
2020-10-23 14:44:18 +02:00
|
|
|
~ https://www.apache.org/licenses/LICENSE-2.0
|
2011-12-09 06:18:34 +01:00
|
|
|
~
|
|
|
|
~ 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.
|
|
|
|
-->
|
2020-11-10 10:22:35 +01:00
|
|
|
<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 https://maven.apache.org/maven-v4_0_0.xsd">
|
2008-09-09 15:42:47 +02:00
|
|
|
|
2008-08-08 02:37:18 +02:00
|
|
|
<modelVersion>4.0.0</modelVersion>
|
2010-04-30 13:07:17 +02:00
|
|
|
<parent>
|
2011-12-09 03:51:34 +01:00
|
|
|
<groupId>org.sonatype.oss</groupId>
|
|
|
|
<artifactId>oss-parent</artifactId>
|
2014-05-02 09:31:40 +02:00
|
|
|
<version>9</version>
|
2010-04-30 13:07:17 +02:00
|
|
|
</parent>
|
|
|
|
|
2011-12-09 03:51:34 +01:00
|
|
|
<groupId>io.netty</groupId>
|
2011-12-28 11:44:04 +01:00
|
|
|
<artifactId>netty-parent</artifactId>
|
|
|
|
<packaging>pom</packaging>
|
2018-11-20 15:49:57 +01:00
|
|
|
<version>5.0.0.Final-SNAPSHOT</version>
|
2008-09-09 15:42:47 +02:00
|
|
|
|
2011-12-28 11:44:04 +01:00
|
|
|
<name>Netty</name>
|
2019-07-09 21:09:42 +02:00
|
|
|
<url>https://netty.io/</url>
|
2008-09-09 15:42:47 +02:00
|
|
|
<description>
|
2015-02-06 20:52:23 +01:00
|
|
|
Netty is an asynchronous event-driven network application framework for
|
2011-12-28 11:44:04 +01:00
|
|
|
rapid development of maintainable high performance protocol servers and
|
|
|
|
clients.
|
2008-09-09 15:42:47 +02:00
|
|
|
</description>
|
|
|
|
|
2011-12-09 06:49:10 +01:00
|
|
|
<organization>
|
|
|
|
<name>The Netty Project</name>
|
2019-07-09 21:09:42 +02:00
|
|
|
<url>https://netty.io/</url>
|
2011-12-09 06:49:10 +01:00
|
|
|
</organization>
|
|
|
|
|
2008-08-08 02:37:18 +02:00
|
|
|
<licenses>
|
|
|
|
<license>
|
2009-08-28 09:39:09 +02:00
|
|
|
<name>Apache License, Version 2.0</name>
|
2020-10-23 14:44:18 +02:00
|
|
|
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
|
2008-08-08 02:37:18 +02:00
|
|
|
</license>
|
|
|
|
</licenses>
|
2008-09-09 15:42:47 +02:00
|
|
|
<inceptionYear>2008</inceptionYear>
|
|
|
|
|
2008-08-08 02:37:18 +02:00
|
|
|
<scm>
|
2011-01-11 10:41:14 +01:00
|
|
|
<url>https://github.com/netty/netty</url>
|
|
|
|
<connection>scm:git:git://github.com/netty/netty.git</connection>
|
2011-02-07 13:31:08 +01:00
|
|
|
<developerConnection>scm:git:ssh://git@github.com/netty/netty.git</developerConnection>
|
2018-10-29 16:38:51 +01:00
|
|
|
<tag>HEAD</tag>
|
2008-08-08 02:37:18 +02:00
|
|
|
</scm>
|
2008-09-09 15:42:47 +02:00
|
|
|
|
2011-12-09 07:22:00 +01:00
|
|
|
<developers>
|
|
|
|
<developer>
|
|
|
|
<id>netty.io</id>
|
|
|
|
<name>The Netty Project Contributors</name>
|
|
|
|
<email>netty@googlegroups.com</email>
|
2019-07-09 21:09:42 +02:00
|
|
|
<url>https://netty.io/</url>
|
2011-12-09 07:22:00 +01:00
|
|
|
<organization>The Netty Project</organization>
|
2019-07-09 21:09:42 +02:00
|
|
|
<organizationUrl>https://netty.io/</organizationUrl>
|
2011-12-09 07:22:00 +01:00
|
|
|
</developer>
|
|
|
|
</developers>
|
|
|
|
|
2013-12-04 11:03:32 +01:00
|
|
|
<profiles>
|
2021-05-17 20:12:06 +02:00
|
|
|
<profile>
|
|
|
|
<id>aggregate</id>
|
|
|
|
<properties>
|
|
|
|
<checkstyle.skip>true</checkstyle.skip>
|
|
|
|
</properties>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
|
|
<version>3.2.0</version>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>aggregate</id>
|
|
|
|
<goals>
|
|
|
|
<goal>aggregate</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
<configuration>
|
|
|
|
<sourceFileExcludes>
|
|
|
|
<exclude>**/com/sun/**/*.java</exclude>
|
|
|
|
<exclude>**/example/**/*.java</exclude>
|
|
|
|
<exclude>**/testsuite/**/*.java</exclude>
|
|
|
|
<exclude>**/microbench/**/*.java</exclude>
|
|
|
|
<exclude>**/microbenchmark/**/*.java</exclude>
|
|
|
|
<exclude>**/generated/**/*.java</exclude>
|
2021-05-19 16:26:52 +02:00
|
|
|
<exclude>**/*Benchmark.java</exclude>
|
|
|
|
<exclude>**/*Bench.java</exclude>
|
|
|
|
<exclude>**/*Test.java</exclude>
|
2021-05-17 20:12:06 +02:00
|
|
|
</sourceFileExcludes>
|
|
|
|
<docfilessubdirs>true</docfilessubdirs>
|
|
|
|
<outputDirectory>${project.build.directory}/api</outputDirectory>
|
|
|
|
<overview>${project.basedir}/src/javadoc/overview.html</overview>
|
|
|
|
<doctitle>Netty API Reference (${project.version})</doctitle>
|
|
|
|
<windowtitle>Netty API Reference (${project.version})</windowtitle>
|
|
|
|
<detectJavaApiLink>false</detectJavaApiLink>
|
|
|
|
<links>
|
|
|
|
<link>https://docs.oracle.com/javase/8/docs/api/</link>
|
|
|
|
<link>https://developers.google.com/protocol-buffers/docs/reference/java/</link>
|
|
|
|
<link>https://www.slf4j.org/apidocs/</link>
|
|
|
|
</links>
|
|
|
|
<groups>
|
|
|
|
<group>
|
|
|
|
<title>Low-level data representation</title>
|
|
|
|
<packages>io.netty.buffer*</packages>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<title>Central interface for all I/O operations</title>
|
|
|
|
<packages>io.netty.channel*</packages>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<title>Client & Server bootstrapping utilities</title>
|
|
|
|
<packages>io.netty.bootstrap*</packages>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<title>Reusable I/O event interceptors</title>
|
|
|
|
<packages>io.netty.handler*</packages>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<title>DNS / Host resolvers</title>
|
|
|
|
<packages>io.netty.resolver*</packages>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<title>Utils</title>
|
|
|
|
<packages>io.netty.util*</packages>
|
|
|
|
</group>
|
|
|
|
</groups>
|
|
|
|
<locale>en_US</locale>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-jxr-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>aggregate</id>
|
|
|
|
<goals>
|
|
|
|
<goal>aggregate</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
<configuration>
|
|
|
|
<linkJavadoc>true</linkJavadoc>
|
|
|
|
<destDir>${project.build.directory}/site/xref</destDir>
|
|
|
|
<javadocDir>${project.build.directory}/site/apidocs</javadocDir>
|
|
|
|
<docTitle>Netty Source Xref (${project.version})</docTitle>
|
|
|
|
<windowTitle>Netty Source Xref (${project.version})</windowTitle>
|
|
|
|
<excludes>
|
|
|
|
<exclude>**/com/sun/**/*.java</exclude>
|
|
|
|
<exclude>**/example/**/*.java</exclude>
|
|
|
|
<exclude>**/microbench/**/*.java</exclude>
|
|
|
|
<exclude>**/microbenchmark/**/*.java</exclude>
|
|
|
|
</excludes>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2019-04-29 08:39:42 +02:00
|
|
|
<!-- Detect if we use GraalVM and if so enable the native image testsuite -->
|
|
|
|
<profile>
|
|
|
|
<id>graal</id>
|
|
|
|
<activation>
|
|
|
|
<file>
|
|
|
|
<!-- GraalVM Component Updater should exists when using GraalVM-->
|
2019-05-22 19:20:54 +02:00
|
|
|
<exists>${java.home}/bin/gu</exists>
|
2019-04-29 08:39:42 +02:00
|
|
|
</file>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
|
|
|
<skipNativeImageTestsuite>false</skipNativeImageTestsuite>
|
2019-04-29 18:40:22 +02:00
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<testJvm/>
|
2019-04-29 08:39:42 +02:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2021-07-23 14:14:30 +02:00
|
|
|
<profile>
|
|
|
|
<id>java17</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>17</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
|
|
|
<argLine.alpnAgent />
|
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
|
|
|
<!-- This is the minimum supported by Java12+ -->
|
2021-08-18 16:22:26 +02:00
|
|
|
<maven.compiler.source>11</maven.compiler.source>
|
|
|
|
<maven.compiler.target>11</maven.compiler.target>
|
2021-07-23 14:14:30 +02:00
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
2020-10-12 16:42:40 +02:00
|
|
|
<!-- JDK16 -->
|
|
|
|
<profile>
|
|
|
|
<id>java16</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>16</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
|
|
|
<argLine.alpnAgent />
|
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
|
|
|
<!-- This is the minimum supported by Java12+ -->
|
|
|
|
<maven.compiler.source>11</maven.compiler.source>
|
|
|
|
<maven.compiler.target>11</maven.compiler.target>
|
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
2020-08-10 14:03:23 +02:00
|
|
|
<!-- JDK15 -->
|
2020-04-27 06:27:54 +02:00
|
|
|
<profile>
|
|
|
|
<id>java15</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>15</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2021-07-14 07:46:17 +02:00
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
2020-04-27 06:27:54 +02:00
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
|
|
|
<argLine.alpnAgent />
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
|
|
|
<!-- This is the minimum supported by Java12+ -->
|
2020-10-22 09:04:09 +02:00
|
|
|
<maven.compiler.source>11</maven.compiler.source>
|
|
|
|
<maven.compiler.target>11</maven.compiler.target>
|
2020-04-27 06:27:54 +02:00
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
2020-08-10 14:03:23 +02:00
|
|
|
<!-- JDK14 -->
|
2020-03-30 21:25:08 +02:00
|
|
|
<profile>
|
|
|
|
<id>java14</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>14</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2021-07-14 07:46:17 +02:00
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
2020-03-30 21:25:08 +02:00
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
|
|
|
<argLine.alpnAgent />
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
2019-01-17 07:02:13 +01:00
|
|
|
<!-- JDK13 -->
|
|
|
|
<profile>
|
|
|
|
<id>java13</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>13</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2021-07-14 07:46:17 +02:00
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
2020-03-30 21:25:08 +02:00
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
2019-01-17 07:02:13 +01:00
|
|
|
<argLine.alpnAgent />
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
2020-03-30 21:25:08 +02:00
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
2019-01-17 07:02:13 +01:00
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
2018-09-26 20:01:53 +02:00
|
|
|
<!-- JDK12 -->
|
|
|
|
<profile>
|
|
|
|
<id>java12</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>12</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2019-03-13 09:47:02 +01:00
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
2020-03-30 21:25:08 +02:00
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
2018-09-26 20:01:53 +02:00
|
|
|
<argLine.alpnAgent />
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
2020-03-30 21:25:08 +02:00
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
2018-09-26 20:01:53 +02:00
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
2018-12-04 11:59:10 +01:00
|
|
|
<!-- pax-exam does not work on latest Java12 EA 22 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
2018-09-26 20:01:53 +02:00
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
2018-05-12 20:25:11 +02:00
|
|
|
<!-- JDK11 -->
|
|
|
|
<profile>
|
|
|
|
<id>java11</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>11</jdk>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2019-03-13 09:47:02 +01:00
|
|
|
<argLine.java9.extras />
|
|
|
|
<!-- Export some stuff which is used during our tests -->
|
|
|
|
<argLine.java9>--illegal-access=deny ${argLine.java9.extras}</argLine.java9>
|
2020-03-30 21:25:08 +02:00
|
|
|
<!-- Not use alpn agent as Java11+ supports alpn out of the box -->
|
2018-05-12 20:25:11 +02:00
|
|
|
<argLine.alpnAgent />
|
|
|
|
<forbiddenapis.skip>true</forbiddenapis.skip>
|
|
|
|
<!-- Needed because of https://issues.apache.org/jira/browse/MENFORCER-275 -->
|
2020-03-30 21:25:08 +02:00
|
|
|
<enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
|
2018-05-12 20:25:11 +02:00
|
|
|
<!-- 1.4.x does not work in Java10+ -->
|
|
|
|
<jboss.marshalling.version>2.0.5.Final</jboss.marshalling.version>
|
2019-01-18 20:13:49 +01:00
|
|
|
<!-- pax-exam does not work on latest Java11 build -->
|
|
|
|
<skipOsgiTestsuite>true</skipOsgiTestsuite>
|
2018-05-12 20:25:11 +02:00
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
Introduce alternative Buffer API (#11347)
Motivation:
In Netty 5 we wish to have a simpler, safe, future proof, and more consistent buffer API.
We developed such an API in the incubating buffer repository, and taking it through multiple rounds of review and adjustments.
This PR/commit bring the results of that work into the Netty 5 branch of the main Netty repository.
Modifications:
* `Buffer` is an interface, and all implementations are hidden behind it.
There is no longer an inheritance hierarchy of abstract classes and implementations.
* Reference counting is gone.
After a buffer has been allocated, calling `close` on it will deallocate it.
It is then up to users and integrators to ensure that the life-times of buffers are managed correctly.
This is usually not a problem as buffers tend to flow through the pipeline to be released after a terminal IO operation.
* Slice and duplicate methods are replaced with `split`.
By removing slices, duplicate, and reference counting, there is no longer a possibility that a buffer and/or its memory can be shared and accessible through multiple routes.
This solves the problem of data being accessed from multiple places in an uncoordinated way, and the problem of buffer memory being closed while being in use by some unsuspecting piece of code.
Some adjustments will have to be made to other APIs, idioms, and usages, since `split` is not always a replacement for `slice` in some use cases.
* The `split` has been added which allows memory to be shared among multiple buffers, but in non-overlapping regions.
When the memory regions don't overlap, it will not be possible for the different buffers to interfere with each other.
An internal, and completely transparent, reference counting system ensures that the backing memory is released once the last buffer view is closed.
* A Send API has been introduced that can be used to enforce (in the type system) the transfer of buffer ownership.
This is not expected to be used in the pipeline flow itself, but rather for other objects that wrap buffers and wish to avoid becoming "shared views" — the absence of "shared views" of memory is important for avoiding bugs in the absence of reference counting.
* A new BufferAllocator API, where the choice of implementation determines factors like on-/off-heap, pooling or not.
How access to the different allocators will be exposed to integrators will be decided later.
Perhaps they'll be directly accessible on the `ChannelHandlerContext`.
* The `PooledBufferAllocator` has been copied and modified to match the new allocator API.
This includes unifying its implementation that was previously split across on-heap and off-heap.
* The `PooledBufferAllocator` implementation has also been adjusted to allocate 4 MiB chunks by default, and a few changes have been made to the implementation to make a newly created, empty allocator use significantly less heap memory.
* A `Resource` interface has been added, which defines the life-cycle methods and the `send` method.
The `Buffer` interface extends this.
* Analogues for `ByteBufHolder` has been added in the `BufferHolder` and `BufferRef` classes.
* `ByteCursor` is added as a new way to iterate the data in buffers.
The byte cursor API is designed to be more JIT friendly than an iterator, or the existing `ByteProcessor` interface.
* `CompositeBuffer` no longer permit the same level of access to its internal components.
The composite buffer enforces its ownership of its components via the `Send` API, and the components can only be individually accessed with the `forEachReadable` and `forEachWritable` methods.
This keeps the API and behavioral differences between composite and non-composite buffers to a minimum.
* Two implementations of the `Buffer` interface are provided with the API: One based on `ByteBuffer`, and one based on `sun.misc.Unsafe`.
The `ByteBuffer` implementation is used by default.
More implementations can be loaded from the classpath via service loading.
The `MemorySegment` based implementation is left behind in the incubator repository.
* An extensive and highly parameterised test suite has been added, to ensure that all implementations have consistent and correct behaviour, regardless of their configuration or composition.
Result:
We have a new buffer API that is simpler, better tested, more consistent in behaviour, and safer by design, than the existing `ByteBuf` API.
The next legs of this journey will be about integrating this new API into Netty proper, and deprecate (and eventually remove) the `ByteBuf` API.
This fixes #11024, #8601, #8543, #8542, #8534, #3358, and #3306.
2021-06-28 12:06:44 +02:00
|
|
|
<!-- Enable Unsafe buffer implementation. -->
|
|
|
|
<profile>
|
|
|
|
<id>unsafeBuffer</id>
|
|
|
|
<properties>
|
|
|
|
<argLine.java9>-Dio.netty.tryReflectionSetAccessible=true --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.buffer.api.MemoryManager=Unsafe</argLine.java9>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
|
2018-10-28 10:27:34 +01:00
|
|
|
<profile>
|
|
|
|
<id>boringssl</id>
|
2021-05-26 14:10:45 +02:00
|
|
|
<activation>
|
|
|
|
<!--
|
|
|
|
Automatically active on windows as we only release static boringssl version of
|
|
|
|
netty-tcnative for windows.
|
|
|
|
-->
|
|
|
|
<os>
|
|
|
|
<family>windows</family>
|
|
|
|
</os>
|
|
|
|
</activation>
|
2018-10-28 10:27:34 +01:00
|
|
|
<properties>
|
|
|
|
<tcnative.artifactId>netty-tcnative-boringssl-static</tcnative.artifactId>
|
2018-10-29 16:37:47 +01:00
|
|
|
<tcnative.classifier />
|
2018-10-28 10:27:34 +01:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2013-12-04 11:03:32 +01:00
|
|
|
<profile>
|
|
|
|
<id>leak</id>
|
|
|
|
<properties>
|
2020-01-09 15:08:49 +01:00
|
|
|
<argLine.leak>-Dio.netty.leakDetectionLevel=paranoid -Dio.netty.leakDetection.targetRecords=32</argLine.leak>
|
2013-12-04 11:03:32 +01:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2017-12-22 18:01:35 +01:00
|
|
|
<profile>
|
|
|
|
<id>noPrintGC</id>
|
|
|
|
<properties>
|
|
|
|
<argLine.printGC>-D_</argLine.printGC>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
2016-02-05 11:22:20 +01:00
|
|
|
<profile>
|
|
|
|
<id>noUnsafe</id>
|
|
|
|
<properties>
|
2018-08-29 19:36:33 +02:00
|
|
|
<argLine.noUnsafe>-Dio.netty.noUnsafe=true</argLine.noUnsafe>
|
2016-02-05 11:22:20 +01:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2014-02-08 17:42:03 +01:00
|
|
|
<profile>
|
|
|
|
<id>coverage</id>
|
2014-02-08 18:12:56 +01:00
|
|
|
<properties>
|
2014-05-20 12:46:19 +02:00
|
|
|
<argLine.coverage>${jacoco.argLine}</argLine.coverage>
|
2014-02-08 18:12:56 +01:00
|
|
|
</properties>
|
2014-02-08 17:42:03 +01:00
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.jacoco</groupId>
|
|
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>0.7.7.201606060606</version>
|
2014-02-08 17:42:03 +01:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>jacoco-prepare-agent</id>
|
|
|
|
<goals>
|
|
|
|
<goal>prepare-agent</goal>
|
|
|
|
</goals>
|
2014-02-08 18:12:56 +01:00
|
|
|
<configuration>
|
|
|
|
<propertyName>jacoco.argLine</propertyName>
|
|
|
|
</configuration>
|
2014-02-08 17:42:03 +01:00
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2014-02-10 23:11:38 +01:00
|
|
|
<profile>
|
2020-10-12 14:13:01 +02:00
|
|
|
<id>relaxjavadoc</id>
|
2014-02-10 23:11:38 +01:00
|
|
|
<activation>
|
2020-10-12 14:13:01 +02:00
|
|
|
<jdk>[11,)</jdk>
|
2014-02-10 23:11:38 +01:00
|
|
|
</activation>
|
|
|
|
<properties>
|
2020-10-12 14:13:01 +02:00
|
|
|
<!-- Our Javadoc has poor enough quality to fail the build thanks to JDK8+ javadoc which got more strict. -->
|
2014-02-10 23:11:38 +01:00
|
|
|
<maven.javadoc.failOnError>false</maven.javadoc.failOnError>
|
2014-12-16 15:24:49 +01:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2014-10-04 00:16:04 +02:00
|
|
|
<profile>
|
|
|
|
<!--
|
|
|
|
This profile exists because either ALPN or NPN can exits on the class path at once, but not both.
|
|
|
|
The JDK version is typically used to distinguish which should be used but there is some overlap
|
|
|
|
where both could be used. ALPN is the default and this profile is enabled with a -Dforcenpn=true arugument
|
|
|
|
-->
|
|
|
|
<id>forcenpn</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<name>forcenpn</name>
|
|
|
|
<value>true</value>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
2016-01-04 09:23:23 +01:00
|
|
|
<jetty.alpnAgent.option>forceNpn=true</jetty.alpnAgent.option>
|
2014-05-20 12:46:19 +02:00
|
|
|
</properties>
|
|
|
|
</profile>
|
2013-12-04 11:03:32 +01:00
|
|
|
</profiles>
|
|
|
|
|
2012-06-13 07:03:57 +02:00
|
|
|
<properties>
|
2020-10-12 14:13:01 +02:00
|
|
|
<maven.compiler.source>11</maven.compiler.source>
|
|
|
|
<maven.compiler.target>11</maven.compiler.target>
|
2017-01-16 18:36:32 +01:00
|
|
|
<netty.dev.tools.directory>${project.build.directory}/dev-tools</netty.dev.tools.directory>
|
2013-02-14 20:19:05 +01:00
|
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
2021-03-19 21:10:05 +01:00
|
|
|
<netty.build.version>29</netty.build.version>
|
2018-05-12 09:42:01 +02:00
|
|
|
<jboss.marshalling.version>1.4.11.Final</jboss.marshalling.version>
|
2020-04-21 15:01:59 +02:00
|
|
|
<jetty.alpnAgent.version>2.0.10</jetty.alpnAgent.version>
|
2016-06-09 09:13:46 +02:00
|
|
|
<jetty.alpnAgent.path>"${settings.localRepository}"/org/mortbay/jetty/alpn/jetty-alpn-agent/${jetty.alpnAgent.version}/jetty-alpn-agent-${jetty.alpnAgent.version}.jar</jetty.alpnAgent.path>
|
2014-05-20 12:46:19 +02:00
|
|
|
<argLine.common>
|
|
|
|
-server
|
2013-03-16 02:15:42 +01:00
|
|
|
-dsa -da -ea:io.netty...
|
|
|
|
-XX:+HeapDumpOnOutOfMemoryError
|
2014-05-20 12:46:19 +02:00
|
|
|
</argLine.common>
|
2016-01-04 09:23:23 +01:00
|
|
|
<!-- Default to ALPN. See forcenpn profile to force NPN -->
|
|
|
|
<argLine.alpnAgent>-javaagent:${jetty.alpnAgent.path}=${jetty.alpnAgent.option}</argLine.alpnAgent>
|
2015-05-29 03:43:18 +02:00
|
|
|
<argLine.leak>-D_</argLine.leak> <!-- Overridden when 'leak' profile is active -->
|
2016-02-05 11:22:20 +01:00
|
|
|
<argLine.noUnsafe>-D_</argLine.noUnsafe> <!-- Overridden when 'noUnsafe' profile is active -->
|
2014-06-27 10:09:18 +02:00
|
|
|
<argLine.coverage>-D_</argLine.coverage> <!-- Overridden when 'coverage' profile is active -->
|
2021-07-01 11:30:30 +02:00
|
|
|
<argLine.printGC>-Xlog:gc</argLine.printGC>
|
2017-01-12 11:35:58 +01:00
|
|
|
<argLine.java9 /> <!-- Overridden when 'java9' profile is active -->
|
2016-12-05 14:30:52 +01:00
|
|
|
<argLine.javaProperties>-D_</argLine.javaProperties>
|
2015-09-18 16:51:04 +02:00
|
|
|
<!-- Configure the os-maven-plugin extension to expand the classifier on -->
|
|
|
|
<!-- Fedora-"like" systems. This is currently only used for the netty-tcnative dependency -->
|
2021-02-08 08:35:41 +01:00
|
|
|
<osmaven.version>1.7.0</osmaven.version>
|
2019-08-12 08:37:27 +02:00
|
|
|
<!-- keep in sync with PlatformDependent#ALLOWED_LINUX_OS_CLASSIFIERS -->
|
|
|
|
<os.detection.classifierWithLikes>fedora,suse,arch</os.detection.classifierWithLikes>
|
2019-04-08 20:27:05 +02:00
|
|
|
<tcnative.artifactId>netty-tcnative</tcnative.artifactId>
|
2021-09-16 09:23:45 +02:00
|
|
|
<!-- Keep in sync with bom/pom.xml -->
|
2021-09-14 08:31:50 +02:00
|
|
|
<tcnative.version>2.0.43.Final</tcnative.version>
|
2015-09-18 16:51:04 +02:00
|
|
|
<tcnative.classifier>${os.detected.classifier}</tcnative.classifier>
|
2017-03-31 22:55:59 +02:00
|
|
|
<conscrypt.groupId>org.conscrypt</conscrypt.groupId>
|
|
|
|
<conscrypt.artifactId>conscrypt-openjdk-uber</conscrypt.artifactId>
|
2021-05-11 10:40:54 +02:00
|
|
|
<conscrypt.version>2.5.2</conscrypt.version>
|
2017-04-29 14:09:32 +02:00
|
|
|
<conscrypt.classifier />
|
2021-07-20 15:09:58 +02:00
|
|
|
<bouncycastle.version>1.69</bouncycastle.version>
|
2017-01-19 17:31:34 +01:00
|
|
|
<jni.classifier>${os.detected.name}-${os.detected.arch}</jni.classifier>
|
2016-04-12 09:47:59 +02:00
|
|
|
<logging.config>${project.basedir}/../common/src/test/resources/logback-test.xml</logging.config>
|
|
|
|
<logging.logLevel>debug</logging.logLevel>
|
2016-08-09 17:38:45 +02:00
|
|
|
<log4j2.version>2.6.2</log4j2.version>
|
2017-08-15 12:19:10 +02:00
|
|
|
<enforcer.plugin.version>1.4.1</enforcer.plugin.version>
|
2020-11-04 10:19:59 +01:00
|
|
|
<junit.version>5.7.0</junit.version>
|
2021-06-21 16:10:39 +02:00
|
|
|
<graalvm.version>19.3.6</graalvm.version>
|
|
|
|
<brotli4j.version>1.4.2</brotli4j.version>
|
2019-04-29 18:40:22 +02:00
|
|
|
<testJavaHome>${java.home}</testJavaHome>
|
|
|
|
<testJvm>${testJavaHome}/bin/java</testJvm>
|
2017-02-16 16:57:28 +01:00
|
|
|
<skipOsgiTestsuite>false</skipOsgiTestsuite>
|
|
|
|
<skipAutobahnTestsuite>false</skipAutobahnTestsuite>
|
2017-12-14 07:53:12 +01:00
|
|
|
<skipHttp2Testsuite>false</skipHttp2Testsuite>
|
2021-08-09 18:08:06 +02:00
|
|
|
<japicmp.skip>true</japicmp.skip>
|
2021-07-26 08:29:07 +02:00
|
|
|
<brotli4j.version>1.5.0</brotli4j.version>
|
2019-04-29 08:39:42 +02:00
|
|
|
<!-- By default skip native testsuite as it requires a custom environment with graalvm installed -->
|
|
|
|
<skipNativeImageTestsuite>true</skipNativeImageTestsuite>
|
2019-09-07 22:32:15 +02:00
|
|
|
<skipShadingTestsuite>false</skipShadingTestsuite>
|
2021-03-30 19:06:08 +02:00
|
|
|
<skipDeploy>false</skipDeploy>
|
2012-06-13 07:03:57 +02:00
|
|
|
</properties>
|
2013-12-04 11:03:32 +01:00
|
|
|
|
2011-12-28 11:44:04 +01:00
|
|
|
<modules>
|
2017-05-11 15:14:31 +02:00
|
|
|
<module>all</module>
|
2017-01-16 18:36:32 +01:00
|
|
|
<module>dev-tools</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
<module>common</module>
|
|
|
|
<module>buffer</module>
|
|
|
|
<module>codec</module>
|
2014-06-02 17:00:33 +02:00
|
|
|
<module>codec-dns</module>
|
2014-06-21 06:48:13 +02:00
|
|
|
<module>codec-haproxy</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
<module>codec-http</module>
|
2015-01-20 01:48:11 +01:00
|
|
|
<module>codec-http2</module>
|
2013-10-01 15:42:05 +02:00
|
|
|
<module>codec-memcache</module>
|
2014-04-16 23:59:09 +02:00
|
|
|
<module>codec-mqtt</module>
|
2016-04-14 00:30:09 +02:00
|
|
|
<module>codec-redis</module>
|
2016-04-14 11:01:12 +02:00
|
|
|
<module>codec-smtp</module>
|
2012-11-07 19:54:00 +01:00
|
|
|
<module>codec-socks</module>
|
2014-04-16 23:59:09 +02:00
|
|
|
<module>codec-stomp</module>
|
2014-08-27 11:46:51 +02:00
|
|
|
<module>codec-xml</module>
|
2014-09-19 15:36:32 +02:00
|
|
|
<module>resolver</module>
|
|
|
|
<module>resolver-dns</module>
|
2019-10-28 15:03:40 +01:00
|
|
|
<module>resolver-dns-native-macos</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
<module>transport</module>
|
2017-05-11 15:14:31 +02:00
|
|
|
<module>transport-native-unix-common-tests</module>
|
|
|
|
<module>transport-native-unix-common</module>
|
|
|
|
<module>transport-native-epoll</module>
|
|
|
|
<module>transport-native-kqueue</module>
|
2013-01-01 09:19:00 +01:00
|
|
|
<module>transport-sctp</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
<module>handler</module>
|
2014-08-25 10:50:37 +02:00
|
|
|
<module>handler-proxy</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
<module>example</module>
|
|
|
|
<module>testsuite</module>
|
2017-02-20 14:06:48 +01:00
|
|
|
<module>testsuite-autobahn</module>
|
2017-12-14 07:53:12 +01:00
|
|
|
<module>testsuite-http2</module>
|
2015-02-14 13:37:01 +01:00
|
|
|
<module>testsuite-osgi</module>
|
2018-07-11 21:03:59 +02:00
|
|
|
<module>testsuite-shading</module>
|
2021-01-14 17:11:19 +01:00
|
|
|
<module>testsuite-native</module>
|
2019-04-29 08:39:42 +02:00
|
|
|
<module>testsuite-native-image</module>
|
2020-10-26 08:34:31 +01:00
|
|
|
<module>testsuite-native-image-client</module>
|
2020-12-07 18:16:30 +01:00
|
|
|
<module>testsuite-native-image-client-runtime-init</module>
|
2019-10-25 15:14:14 +02:00
|
|
|
<module>transport-blockhound-tests</module>
|
2013-02-14 20:27:26 +01:00
|
|
|
<module>microbench</module>
|
2017-02-19 11:41:55 +01:00
|
|
|
<module>bom</module>
|
2011-12-28 11:44:04 +01:00
|
|
|
</modules>
|
2011-11-25 22:22:01 +01:00
|
|
|
|
2011-12-28 11:44:04 +01:00
|
|
|
<dependencyManagement>
|
|
|
|
<dependencies>
|
2020-12-19 10:37:32 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>io.netty</groupId>
|
|
|
|
<artifactId>netty-jni-util</artifactId>
|
2021-03-25 09:30:49 +01:00
|
|
|
<version>0.0.3.Final</version>
|
2020-12-19 10:37:32 +01:00
|
|
|
<classifier>sources</classifier>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
|
|
|
|
2017-01-16 18:36:32 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
|
|
|
<artifactId>netty-dev-tools</artifactId>
|
|
|
|
<version>${project.version}</version>
|
|
|
|
</dependency>
|
|
|
|
|
2018-05-12 20:25:11 +02:00
|
|
|
<!-- Needed for java11 and later as javax.activation is not part of the JDK anymore -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.sun.activation</groupId>
|
|
|
|
<artifactId>javax.activation</artifactId>
|
|
|
|
<version>1.2.0</version>
|
|
|
|
</dependency>
|
|
|
|
|
2012-05-16 13:00:49 +02:00
|
|
|
<!-- JBoss Marshalling - completely optional -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
|
|
<artifactId>jboss-marshalling</artifactId>
|
|
|
|
<version>${jboss.marshalling.version}</version>
|
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
2014-05-02 09:31:40 +02:00
|
|
|
|
2014-05-20 12:46:19 +02:00
|
|
|
<!-- SPDY and HTTP/2 - completely optional -->
|
2014-01-15 12:29:18 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.eclipse.jetty.npn</groupId>
|
|
|
|
<artifactId>npn-api</artifactId>
|
2014-10-04 00:16:04 +02:00
|
|
|
<version>1.1.1.v20141010</version>
|
2016-01-04 09:23:23 +01:00
|
|
|
<scope>provided</scope> <!-- Provided by npn-boot -->
|
2014-05-20 12:46:19 +02:00
|
|
|
</dependency>
|
2014-10-04 00:16:04 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.eclipse.jetty.alpn</groupId>
|
|
|
|
<artifactId>alpn-api</artifactId>
|
2015-05-22 17:34:16 +02:00
|
|
|
<version>1.1.2.v20150522</version>
|
2015-11-23 21:46:32 +01:00
|
|
|
<scope>provided</scope> <!-- Provided by alpn-boot -->
|
2014-10-04 00:16:04 +02:00
|
|
|
</dependency>
|
2014-05-02 09:31:40 +02:00
|
|
|
|
2014-05-17 13:00:21 +02:00
|
|
|
<!-- Google Protocol Buffers - completely optional -->
|
2011-12-28 11:44:04 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.protobuf</groupId>
|
|
|
|
<artifactId>protobuf-java</artifactId>
|
2016-04-12 13:07:48 +02:00
|
|
|
<version>2.6.1</version>
|
2011-12-28 11:44:04 +01:00
|
|
|
</dependency>
|
2016-01-19 20:23:39 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.protobuf.nano</groupId>
|
|
|
|
<artifactId>protobuf-javanano</artifactId>
|
2016-04-12 13:07:48 +02:00
|
|
|
<version>3.0.0-alpha-5</version>
|
2016-01-19 20:23:39 +01:00
|
|
|
</dependency>
|
2014-05-17 13:00:21 +02:00
|
|
|
|
2017-04-19 22:37:03 +02:00
|
|
|
<!-- Our own Tomcat Native fork - completely optional, used for accelerating SSL with OpenSSL. -->
|
2014-05-17 19:26:01 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
2016-01-28 19:04:27 +01:00
|
|
|
<artifactId>${tcnative.artifactId}</artifactId>
|
|
|
|
<version>${tcnative.version}</version>
|
2015-09-18 16:51:04 +02:00
|
|
|
<classifier>${tcnative.classifier}</classifier>
|
2014-05-17 19:26:01 +02:00
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
2017-03-31 22:55:59 +02:00
|
|
|
</dependency>
|
|
|
|
|
2021-06-07 08:08:37 +02:00
|
|
|
<!-- Conscrypt - needed for running tests, used for accelerating SSL with OpenSSL. -->
|
2017-03-31 22:55:59 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>${conscrypt.groupId}</groupId>
|
|
|
|
<artifactId>${conscrypt.artifactId}</artifactId>
|
|
|
|
<classifier>${conscrypt.classifier}</classifier>
|
|
|
|
<version>${conscrypt.version}</version>
|
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
2014-05-17 19:26:01 +02:00
|
|
|
</dependency>
|
|
|
|
|
2014-05-17 13:00:21 +02:00
|
|
|
<!--
|
2020-10-12 14:13:01 +02:00
|
|
|
Bouncy Castle - completely optional, only needed when you generate a temporary self-signed
|
|
|
|
certificate using SelfSignedCertificate.
|
2014-05-17 13:00:21 +02:00
|
|
|
-->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.bouncycastle</groupId>
|
|
|
|
<artifactId>bcpkix-jdk15on</artifactId>
|
2020-10-12 14:13:01 +02:00
|
|
|
<version>${bouncycastle.version}</version>
|
2014-05-17 13:00:21 +02:00
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
|
|
|
|
2019-05-22 19:20:54 +02:00
|
|
|
<!--
|
2016-12-27 00:04:56 +01:00
|
|
|
Completely optional and only needed for OCSP stapling to construct and
|
|
|
|
parse OCSP requests and responses.
|
|
|
|
-->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.bouncycastle</groupId>
|
|
|
|
<artifactId>bcprov-jdk15on</artifactId>
|
2020-10-12 14:13:01 +02:00
|
|
|
<version>${bouncycastle.version}</version>
|
2016-12-27 00:04:56 +01:00
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
|
|
|
|
2014-08-27 11:46:51 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.fasterxml</groupId>
|
|
|
|
<artifactId>aalto-xml</artifactId>
|
2016-04-12 13:07:48 +02:00
|
|
|
<version>1.0.0</version>
|
2014-08-27 11:46:51 +02:00
|
|
|
</dependency>
|
|
|
|
|
2013-02-19 12:45:11 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.jcraft</groupId>
|
|
|
|
<artifactId>jzlib</artifactId>
|
2015-05-11 16:18:14 +02:00
|
|
|
<version>1.1.3</version>
|
2013-02-19 12:45:11 +01:00
|
|
|
</dependency>
|
2014-07-14 21:10:30 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.ning</groupId>
|
|
|
|
<artifactId>compress-lzf</artifactId>
|
2015-05-11 16:18:14 +02:00
|
|
|
<version>1.0.3</version>
|
2014-07-14 21:10:30 +02:00
|
|
|
</dependency>
|
2014-08-05 21:48:23 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>net.jpountz.lz4</groupId>
|
|
|
|
<artifactId>lz4</artifactId>
|
2015-05-11 16:18:14 +02:00
|
|
|
<version>1.3.0</version>
|
2014-08-05 21:48:23 +02:00
|
|
|
</dependency>
|
2014-09-15 15:02:27 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.github.jponge</groupId>
|
|
|
|
<artifactId>lzma-java</artifactId>
|
|
|
|
<version>1.3</version>
|
|
|
|
</dependency>
|
2021-07-06 14:57:09 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.github.luben</groupId>
|
|
|
|
<artifactId>zstd-jni</artifactId>
|
|
|
|
<version>1.5.0-2</version>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
2021-05-10 15:25:24 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.aayushatharva.brotli4j</groupId>
|
|
|
|
<artifactId>brotli4j</artifactId>
|
|
|
|
<version>${brotli4j.version}</version>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.aayushatharva.brotli4j</groupId>
|
|
|
|
<artifactId>native-linux-x86_64</artifactId>
|
|
|
|
<version>${brotli4j.version}</version>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.aayushatharva.brotli4j</groupId>
|
|
|
|
<artifactId>native-osx-x86_64</artifactId>
|
|
|
|
<version>${brotli4j.version}</version>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.aayushatharva.brotli4j</groupId>
|
|
|
|
<artifactId>native-windows-x86_64</artifactId>
|
|
|
|
<version>${brotli4j.version}</version>
|
|
|
|
</dependency>
|
2009-02-09 02:31:50 +01:00
|
|
|
|
2016-03-27 14:25:39 +02:00
|
|
|
<!-- Java concurrency tools for the JVM -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.jctools</groupId>
|
|
|
|
<artifactId>jctools-core</artifactId>
|
2020-08-10 11:15:39 +02:00
|
|
|
<version>3.1.0</version>
|
2016-03-27 14:25:39 +02:00
|
|
|
</dependency>
|
|
|
|
|
2011-12-28 11:44:04 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>javax.servlet</groupId>
|
|
|
|
<artifactId>servlet-api</artifactId>
|
|
|
|
<version>2.5</version>
|
|
|
|
</dependency>
|
2010-01-26 14:15:21 +01:00
|
|
|
|
2011-12-28 11:44:04 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>slf4j-api</artifactId>
|
2020-10-26 13:03:12 +01:00
|
|
|
<version>1.7.30</version>
|
2011-12-28 11:44:04 +01:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>commons-logging</groupId>
|
|
|
|
<artifactId>commons-logging</artifactId>
|
2016-04-12 13:07:48 +02:00
|
|
|
<version>1.2</version>
|
2011-12-28 11:44:04 +01:00
|
|
|
</dependency>
|
2016-03-26 07:25:17 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-api</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>${log4j2.version}</version>
|
2016-03-26 07:25:17 +01:00
|
|
|
</dependency>
|
2011-12-28 11:44:04 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>log4j</groupId>
|
|
|
|
<artifactId>log4j</artifactId>
|
2012-06-11 14:38:42 +02:00
|
|
|
<version>1.2.17</version>
|
2011-12-28 11:44:04 +01:00
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<artifactId>mail</artifactId>
|
|
|
|
<groupId>javax.mail</groupId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<artifactId>jms</artifactId>
|
|
|
|
<groupId>javax.jms</groupId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<artifactId>jmxtools</artifactId>
|
|
|
|
<groupId>com.sun.jdmk</groupId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<artifactId>jmxri</artifactId>
|
|
|
|
<groupId>com.sun.jmx</groupId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
2015-02-06 20:52:23 +01:00
|
|
|
|
2012-09-30 22:23:14 +02:00
|
|
|
<!-- Metrics providers -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.yammer.metrics</groupId>
|
|
|
|
<artifactId>metrics-core</artifactId>
|
2013-01-10 07:23:58 +01:00
|
|
|
<version>2.2.0</version>
|
2012-09-30 22:23:14 +02:00
|
|
|
</dependency>
|
2015-02-06 20:52:23 +01:00
|
|
|
|
2014-01-09 10:43:13 +01:00
|
|
|
<!-- Common test dependencies -->
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-api</artifactId>
|
|
|
|
<version>${junit.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
|
|
<version>${junit.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2021-03-05 13:29:20 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-params</artifactId>
|
|
|
|
<version>${junit.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.vintage</groupId>
|
|
|
|
<artifactId>junit-vintage-engine</artifactId>
|
|
|
|
<version>${junit.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-01-09 10:43:13 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>junit</groupId>
|
|
|
|
<artifactId>junit</artifactId>
|
2020-10-14 12:00:12 +02:00
|
|
|
<version>4.13.1</version>
|
2014-01-09 10:43:13 +01:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2016-03-04 08:06:30 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
2021-03-21 14:48:54 +01:00
|
|
|
<artifactId>netty-build-common</artifactId>
|
2016-03-04 08:06:30 +01:00
|
|
|
<version>${netty.build.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-12-04 09:53:35 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
|
<artifactId>hamcrest-library</artifactId>
|
|
|
|
<version>1.3</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.assertj</groupId>
|
|
|
|
<artifactId>assertj-core</artifactId>
|
|
|
|
<version>3.18.0</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-06-17 01:46:34 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.mockito</groupId>
|
2014-12-04 09:53:35 +01:00
|
|
|
<artifactId>mockito-core</artifactId>
|
2018-05-10 08:36:17 +02:00
|
|
|
<version>2.18.3</version>
|
2014-06-17 01:46:34 +02:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-01-09 10:43:13 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>ch.qos.logback</groupId>
|
|
|
|
<artifactId>logback-classic</artifactId>
|
2021-05-18 11:40:57 +02:00
|
|
|
<version>1.2.3</version>
|
2014-01-09 10:43:13 +01:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2021-08-06 08:45:24 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>io.github.artsok</groupId>
|
|
|
|
<artifactId>rerunner-jupiter</artifactId>
|
|
|
|
<version>2.1.6</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-01-09 10:43:13 +01:00
|
|
|
|
2012-05-16 13:00:49 +02:00
|
|
|
<!-- Test dependencies for jboss marshalling encoder/decoder -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
|
|
<artifactId>jboss-marshalling-serial</artifactId>
|
|
|
|
<version>${jboss.marshalling.version}</version>
|
|
|
|
<scope>test</scope>
|
2016-02-27 04:02:35 +01:00
|
|
|
</dependency>
|
2012-05-16 13:00:49 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
|
|
<artifactId>jboss-marshalling-river</artifactId>
|
|
|
|
<version>${jboss.marshalling.version}</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2012-12-05 22:11:48 +01:00
|
|
|
|
|
|
|
<!-- Test dependencies for microbench -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.caliper</groupId>
|
|
|
|
<artifactId>caliper</artifactId>
|
|
|
|
<version>0.5-rc1</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-04-16 23:59:09 +02:00
|
|
|
|
2015-03-18 13:41:08 +01:00
|
|
|
<!-- Test dependency for Bzip2 compression codec -->
|
2014-06-17 01:46:34 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.commons</groupId>
|
|
|
|
<artifactId>commons-compress</artifactId>
|
2021-08-10 19:53:15 +02:00
|
|
|
<version>1.21</version>
|
2014-06-17 01:46:34 +02:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-12-14 03:59:09 +01:00
|
|
|
|
2021-05-10 15:25:24 +02:00
|
|
|
<!-- Test dependency for Brotli compression codec -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>commons-io</groupId>
|
|
|
|
<artifactId>commons-io</artifactId>
|
|
|
|
<version>2.8.0</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
|
2015-11-04 21:46:03 +01:00
|
|
|
<!-- Test dependency used by http/2 hpack -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>com.google.code.gson</groupId>
|
|
|
|
<artifactId>gson</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>2.7</version>
|
2015-11-04 21:46:03 +01:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
|
2014-12-14 13:29:26 +01:00
|
|
|
<!-- Test suite dependency for generating a compressed heap dump file -->
|
2014-12-14 03:59:09 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.tukaani</groupId>
|
|
|
|
<artifactId>xz</artifactId>
|
|
|
|
<version>1.5</version>
|
|
|
|
</dependency>
|
2015-10-02 15:16:16 +02:00
|
|
|
|
|
|
|
<!-- Test dependency for resolver-dns -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.directory.server</groupId>
|
|
|
|
<artifactId>apacheds-protocol-dns</artifactId>
|
|
|
|
<version>1.5.7</version>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2016-03-26 07:25:17 +01:00
|
|
|
|
|
|
|
<!-- Test dependency for log4j2 tests -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-core</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>${log4j2.version}</version>
|
2016-03-26 07:25:17 +01:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2019-10-25 15:14:14 +02:00
|
|
|
|
|
|
|
<!-- BlockHound integration -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>io.projectreactor.tools</groupId>
|
|
|
|
<artifactId>blockhound</artifactId>
|
2021-05-12 14:03:59 +02:00
|
|
|
<version>1.0.6.RELEASE</version>
|
2019-10-25 15:14:14 +02:00
|
|
|
</dependency>
|
2011-12-28 11:44:04 +01:00
|
|
|
</dependencies>
|
|
|
|
</dependencyManagement>
|
|
|
|
|
|
|
|
<dependencies>
|
2008-09-09 15:42:47 +02:00
|
|
|
<!-- Testing frameworks and related dependencies -->
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-api</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2021-03-05 13:29:20 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.jupiter</groupId>
|
|
|
|
<artifactId>junit-jupiter-params</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.junit.vintage</groupId>
|
|
|
|
<artifactId>junit-vintage-engine</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2008-09-09 15:42:47 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>junit</groupId>
|
|
|
|
<artifactId>junit</artifactId>
|
2013-01-17 05:55:48 +01:00
|
|
|
<scope>test</scope>
|
2008-09-09 15:42:47 +02:00
|
|
|
</dependency>
|
2016-03-04 08:06:30 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
2021-03-21 14:48:54 +01:00
|
|
|
<artifactId>netty-build-common</artifactId>
|
2016-03-04 08:06:30 +01:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2014-12-04 09:53:35 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
|
<artifactId>hamcrest-library</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-11-04 10:19:59 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.assertj</groupId>
|
|
|
|
<artifactId>assertj-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2008-09-09 15:42:47 +02:00
|
|
|
<dependency>
|
2013-01-07 16:44:41 +01:00
|
|
|
<groupId>ch.qos.logback</groupId>
|
|
|
|
<artifactId>logback-classic</artifactId>
|
2008-09-09 15:42:47 +02:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
|
2008-08-08 02:37:18 +02:00
|
|
|
<build>
|
2014-05-01 12:26:51 +02:00
|
|
|
<extensions>
|
|
|
|
<extension>
|
|
|
|
<groupId>kr.motd.maven</groupId>
|
|
|
|
<artifactId>os-maven-plugin</artifactId>
|
2019-08-03 12:38:35 +02:00
|
|
|
<version>${osmaven.version}</version>
|
2014-05-01 12:26:51 +02:00
|
|
|
</extension>
|
|
|
|
</extensions>
|
|
|
|
|
2008-08-08 02:37:18 +02:00
|
|
|
<plugins>
|
2019-03-01 19:48:29 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>com.github.siom79.japicmp</groupId>
|
|
|
|
<artifactId>japicmp-maven-plugin</artifactId>
|
2021-07-23 11:51:15 +02:00
|
|
|
<version>0.15.3</version>
|
2019-03-01 19:48:29 +01:00
|
|
|
<configuration>
|
|
|
|
<parameter>
|
2019-10-28 15:03:40 +01:00
|
|
|
<ignoreMissingOldVersion>true</ignoreMissingOldVersion>
|
2019-03-01 19:48:29 +01:00
|
|
|
<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
|
|
|
|
<breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
|
|
|
|
<oldVersionPattern>\d+\.\d+\.\d+\.Final</oldVersionPattern>
|
|
|
|
<ignoreMissingClassesByRegularExpressions>
|
|
|
|
<!-- ignore everything which is not part of netty itself as the plugin can not handle optional dependencies -->
|
|
|
|
<ignoreMissingClassesByRegularExpression>^(?!io\.netty\.).*</ignoreMissingClassesByRegularExpression>
|
|
|
|
<ignoreMissingClassesByRegularExpression>^io\.netty\.internal\.tcnative\..*</ignoreMissingClassesByRegularExpression>
|
|
|
|
</ignoreMissingClassesByRegularExpressions>
|
|
|
|
<excludes>
|
|
|
|
<exclude>@io.netty.util.internal.UnstableApi</exclude>
|
2020-01-15 14:26:36 +01:00
|
|
|
<exclude>io.netty.util.internal.shaded</exclude>
|
2021-07-28 12:06:10 +02:00
|
|
|
<!-- Added to fix false-positive -->
|
|
|
|
<exclude>io.netty.handler.codec.dns.TcpDnsQueryDecoder</exclude>
|
2021-07-28 19:53:08 +02:00
|
|
|
<exclude>io.netty.handler.codec.dns.TcpDnsResponseEncoder</exclude>
|
2019-03-01 19:48:29 +01:00
|
|
|
</excludes>
|
|
|
|
</parameter>
|
|
|
|
</configuration>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<phase>verify</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>cmp</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
2011-02-07 13:16:36 +01:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
2017-08-15 12:19:10 +02:00
|
|
|
<version>${enforcer.plugin.version}</version>
|
2011-12-09 04:24:14 +01:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>enforce-tools</id>
|
|
|
|
<goals>
|
|
|
|
<goal>enforce</goal>
|
|
|
|
</goals>
|
|
|
|
<configuration>
|
|
|
|
<rules>
|
|
|
|
<requireJavaVersion>
|
2020-10-12 14:13:01 +02:00
|
|
|
<!-- Enforce JDK 11+ for compilation. -->
|
2015-03-29 09:58:50 +02:00
|
|
|
<!-- This is needed because of java.util.zip.Deflater and NIO UDP multicast. -->
|
2020-10-12 14:13:01 +02:00
|
|
|
<version>[11.0.0,)</version>
|
2011-12-09 04:24:14 +01:00
|
|
|
</requireJavaVersion>
|
|
|
|
<requireMavenVersion>
|
2014-06-03 20:12:28 +02:00
|
|
|
<version>[3.1.1,)</version>
|
2011-12-09 04:24:14 +01:00
|
|
|
</requireMavenVersion>
|
2016-04-12 21:25:17 +02:00
|
|
|
<requireProperty>
|
|
|
|
<regexMessage>
|
2019-09-26 10:30:04 +02:00
|
|
|
x86_64/AARCH64/PPCLE64/s390x_64 JDK must be used.
|
2016-04-12 21:25:17 +02:00
|
|
|
</regexMessage>
|
|
|
|
<property>os.detected.arch</property>
|
2019-09-26 10:30:04 +02:00
|
|
|
<regex>^(x86_64|aarch_64|ppcle_64|s390_64)$</regex>
|
2016-04-12 21:25:17 +02:00
|
|
|
</requireProperty>
|
2011-12-09 04:24:14 +01:00
|
|
|
</rules>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
2011-02-07 13:16:36 +01:00
|
|
|
</plugin>
|
2008-08-08 02:37:18 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
2018-10-30 14:19:27 +01:00
|
|
|
<version>3.8.0</version>
|
2008-08-08 02:37:18 +02:00
|
|
|
<configuration>
|
2020-10-12 14:13:01 +02:00
|
|
|
<compilerVersion>11</compilerVersion>
|
2013-01-31 13:02:56 +01:00
|
|
|
<fork>true</fork>
|
2017-01-16 18:36:32 +01:00
|
|
|
<source>${maven.compiler.source}</source>
|
|
|
|
<target>${maven.compiler.target}</target>
|
2020-10-12 14:13:01 +02:00
|
|
|
<release>${maven.compiler.target}</release>
|
2008-08-08 02:37:18 +02:00
|
|
|
<debug>true</debug>
|
|
|
|
<optimize>true</optimize>
|
2011-12-09 04:26:45 +01:00
|
|
|
<showDeprecation>true</showDeprecation>
|
|
|
|
<showWarnings>true</showWarnings>
|
2013-03-22 03:57:15 +01:00
|
|
|
<compilerArgument>-Xlint:-options</compilerArgument>
|
2013-02-14 20:47:03 +01:00
|
|
|
<!-- XXX: maven-release-plugin complains - MRELEASE-715 -->
|
|
|
|
<!--
|
2013-01-31 12:57:58 +01:00
|
|
|
<compilerArguments>
|
2013-02-14 21:56:15 +01:00
|
|
|
<Xlint:-options />
|
|
|
|
<Xlint:unchecked />
|
|
|
|
<Xlint:deprecation />
|
2013-01-31 12:57:58 +01:00
|
|
|
</compilerArguments>
|
2013-02-14 20:47:03 +01:00
|
|
|
-->
|
2013-09-10 18:38:15 +02:00
|
|
|
<meminitial>256m</meminitial>
|
|
|
|
<maxmem>1024m</maxmem>
|
2014-05-20 13:04:41 +02:00
|
|
|
<excludes>
|
|
|
|
<exclude>**/package-info.java</exclude>
|
|
|
|
</excludes>
|
2009-04-03 07:47:12 +02:00
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2012-01-11 12:16:14 +01:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
2020-02-03 12:00:51 +01:00
|
|
|
<version>3.1.0</version>
|
2012-01-11 12:16:14 +01:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>check-style</id>
|
|
|
|
<goals>
|
|
|
|
<goal>check</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>validate</phase>
|
|
|
|
<configuration>
|
|
|
|
<consoleOutput>true</consoleOutput>
|
|
|
|
<logViolationsToConsole>true</logViolationsToConsole>
|
|
|
|
<failsOnError>true</failsOnError>
|
2012-01-11 12:22:54 +01:00
|
|
|
<failOnViolation>true</failOnViolation>
|
2012-01-11 12:16:14 +01:00
|
|
|
<configLocation>io/netty/checkstyle.xml</configLocation>
|
2019-01-24 16:24:19 +01:00
|
|
|
<sourceDirectories>
|
|
|
|
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
|
|
|
|
<sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
|
|
|
|
</sourceDirectories>
|
2012-01-11 12:16:14 +01:00
|
|
|
</configuration>
|
|
|
|
</execution>
|
2020-10-23 14:44:18 +02:00
|
|
|
<execution>
|
|
|
|
<id>nohttp-checkstyle-validation</id>
|
|
|
|
<phase>validate</phase>
|
|
|
|
<configuration>
|
|
|
|
<!-- skip>false</skip -->
|
|
|
|
<configLocation>nohttp-checkstyle.xml</configLocation>
|
|
|
|
<suppressionsLocation>nohttp-checkstyle-suppressions.xml</suppressionsLocation>
|
|
|
|
<!-- propertyExpansion>main.basedir=${main.basedir}</propertyExpansion -->
|
|
|
|
<encoding>UTF-8</encoding>
|
|
|
|
<sourceDirectories>${basedir}</sourceDirectories>
|
|
|
|
<includes>**/*</includes>
|
|
|
|
<excludes>nohttp-checkstyle-suppressions.xml,**/.git/**/*,**/.idea/**/*,**/target/**/,**/.flattened-pom.xml,**/*.class</excludes>
|
|
|
|
</configuration>
|
|
|
|
<goals>
|
|
|
|
<goal>check</goal>
|
|
|
|
</goals>
|
|
|
|
<inherited>false</inherited>
|
|
|
|
</execution>
|
2012-01-11 12:16:14 +01:00
|
|
|
</executions>
|
|
|
|
<dependencies>
|
2019-03-26 14:21:34 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
|
|
<artifactId>checkstyle</artifactId>
|
2020-02-03 12:00:51 +01:00
|
|
|
<version>8.29</version>
|
2019-03-26 14:21:34 +01:00
|
|
|
</dependency>
|
2012-01-11 12:16:14 +01:00
|
|
|
<dependency>
|
|
|
|
<groupId>${project.groupId}</groupId>
|
2021-03-21 14:48:54 +01:00
|
|
|
<artifactId>netty-build-common</artifactId>
|
2016-03-04 08:06:30 +01:00
|
|
|
<version>${netty.build.version}</version>
|
2012-01-11 12:16:14 +01:00
|
|
|
</dependency>
|
2020-10-23 14:44:18 +02:00
|
|
|
<dependency>
|
|
|
|
<groupId>io.spring.nohttp</groupId>
|
|
|
|
<artifactId>nohttp-checkstyle</artifactId>
|
|
|
|
<version>0.0.5.RELEASE</version>
|
|
|
|
</dependency>
|
2012-01-11 12:16:14 +01:00
|
|
|
</dependencies>
|
|
|
|
</plugin>
|
2016-02-27 04:02:35 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
|
|
<artifactId>xml-maven-plugin</artifactId>
|
|
|
|
<version>1.0.1</version>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>check-style</id>
|
|
|
|
<goals>
|
|
|
|
<goal>check-format</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>validate</phase>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
<configuration>
|
|
|
|
<formatFileSets>
|
|
|
|
<formatFileSet>
|
|
|
|
<directory>${project.basedir}</directory>
|
|
|
|
<includes>
|
|
|
|
<include>**/pom.xml</include>
|
|
|
|
</includes>
|
|
|
|
</formatFileSet>
|
|
|
|
</formatFileSets>
|
|
|
|
<useDefaultFormatFileSet>false</useDefaultFormatFileSet>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2014-05-20 12:46:19 +02:00
|
|
|
<!-- Download the npn-boot.jar in advance to add it to the boot classpath. -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
2016-01-04 09:23:23 +01:00
|
|
|
<id>get-jetty-alpn-agent</id>
|
2015-03-20 01:33:14 +01:00
|
|
|
<phase>validate</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>get</goal>
|
|
|
|
</goals>
|
|
|
|
<configuration>
|
2016-04-12 13:07:48 +02:00
|
|
|
<groupId>org.mortbay.jetty.alpn</groupId>
|
2016-01-04 09:23:23 +01:00
|
|
|
<artifactId>jetty-alpn-agent</artifactId>
|
|
|
|
<version>${jetty.alpnAgent.version}</version>
|
2015-03-20 01:33:14 +01:00
|
|
|
</configuration>
|
|
|
|
</execution>
|
2014-05-20 12:46:19 +02:00
|
|
|
</executions>
|
|
|
|
</plugin>
|
2012-02-28 19:38:45 +01:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
|
|
<configuration>
|
2012-12-05 22:11:48 +01:00
|
|
|
<includes>
|
2016-02-27 04:02:35 +01:00
|
|
|
<include>**/*Test*.java</include>
|
|
|
|
<include>**/*Benchmark*.java</include>
|
2012-12-05 22:11:48 +01:00
|
|
|
</includes>
|
2012-02-28 19:38:45 +01:00
|
|
|
<excludes>
|
|
|
|
<exclude>**/Abstract*</exclude>
|
2017-05-04 16:57:10 +02:00
|
|
|
<exclude>**/*TestUtil*</exclude>
|
2012-02-28 19:38:45 +01:00
|
|
|
</excludes>
|
|
|
|
<runOrder>random</runOrder>
|
2016-04-12 09:47:59 +02:00
|
|
|
<systemPropertyVariables>
|
|
|
|
<logback.configurationFile>${logging.config}</logback.configurationFile>
|
|
|
|
<logLevel>${logging.logLevel}</logLevel>
|
|
|
|
</systemPropertyVariables>
|
2017-12-22 18:01:35 +01:00
|
|
|
<argLine>${argLine.common} ${argLine.printGC} ${argLine.alpnAgent} ${argLine.leak} ${argLine.coverage} ${argLine.noUnsafe} ${argLine.java9} ${argLine.javaProperties}</argLine>
|
2016-03-04 08:06:30 +01:00
|
|
|
<properties>
|
|
|
|
<property>
|
|
|
|
<name>listener</name>
|
|
|
|
<value>io.netty.build.junit.TimedOutTestsListener</value>
|
|
|
|
</property>
|
|
|
|
</properties>
|
2019-04-29 18:40:22 +02:00
|
|
|
<jvm>${testJvm}</jvm>
|
2019-05-22 19:20:54 +02:00
|
|
|
<!-- Ensure the whole stacktrace is preserved when an exception is thrown. See https://issues.apache.org/jira/browse/SUREFIRE-1457 -->
|
2018-05-29 10:59:42 +02:00
|
|
|
<trimStackTrace>false</trimStackTrace>
|
2012-02-28 19:38:45 +01:00
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2013-02-14 21:21:30 +01:00
|
|
|
<!-- always produce osgi bundles -->
|
2012-06-13 03:43:16 +02:00
|
|
|
<plugin>
|
2013-02-14 21:21:30 +01:00
|
|
|
<groupId>org.apache.felix</groupId>
|
|
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
2020-10-12 16:42:40 +02:00
|
|
|
<version>5.1.1</version>
|
2013-11-26 12:27:58 +01:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>generate-manifest</id>
|
|
|
|
<phase>process-classes</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>manifest</goal>
|
|
|
|
</goals>
|
|
|
|
<configuration>
|
2014-02-15 22:26:36 +01:00
|
|
|
<supportedProjectTypes>
|
|
|
|
<supportedProjectType>jar</supportedProjectType>
|
|
|
|
<supportedProjectType>bundle</supportedProjectType>
|
|
|
|
</supportedProjectTypes>
|
2013-11-26 12:27:58 +01:00
|
|
|
<instructions>
|
|
|
|
<Export-Package>${project.groupId}.*</Export-Package>
|
|
|
|
<!-- enforce JVM vendor package as optional -->
|
2015-02-13 17:33:18 +01:00
|
|
|
<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>
|
2013-11-26 12:27:58 +01:00
|
|
|
<!-- override "internal" private package convention -->
|
|
|
|
<Private-Package>!*</Private-Package>
|
|
|
|
</instructions>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
2015-02-06 20:52:23 +01:00
|
|
|
</plugin>
|
2015-07-29 16:22:13 +02:00
|
|
|
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.10</version>
|
2015-07-29 16:22:13 +02:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>parse-version</id>
|
|
|
|
<goals>
|
|
|
|
<goal>parse-version</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
|
2013-05-13 09:03:00 +02:00
|
|
|
<plugin>
|
2012-06-13 03:43:16 +02:00
|
|
|
<artifactId>maven-source-plugin</artifactId>
|
2019-12-05 09:09:56 +01:00
|
|
|
<version>3.2.0</version>
|
2015-07-29 16:22:13 +02:00
|
|
|
<!-- Eclipse-related OSGi manifests
|
|
|
|
See https://github.com/netty/netty/issues/3886
|
2020-10-23 14:44:18 +02:00
|
|
|
More information: https://rajakannappan.blogspot.ie/2010/03/automating-eclipse-source-bundle.html -->
|
2014-01-20 14:41:40 +01:00
|
|
|
<configuration>
|
2015-07-29 16:22:13 +02:00
|
|
|
<archive>
|
|
|
|
<manifestEntries>
|
|
|
|
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
|
2016-01-08 10:20:06 +01:00
|
|
|
<Bundle-Name>${project.name}</Bundle-Name>
|
|
|
|
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}.source</Bundle-SymbolicName>
|
|
|
|
<Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
|
2015-07-29 16:22:13 +02:00
|
|
|
<Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
|
2016-01-08 10:20:06 +01:00
|
|
|
<Eclipse-SourceBundle>${project.groupId}.${project.artifactId};version="${parsedVersion.osgiVersion}";roots:="."</Eclipse-SourceBundle>
|
2015-07-29 16:22:13 +02:00
|
|
|
</manifestEntries>
|
|
|
|
</archive>
|
2014-01-20 14:41:40 +01:00
|
|
|
</configuration>
|
2015-07-29 16:22:13 +02:00
|
|
|
|
2012-06-13 03:43:16 +02:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>attach-sources</id>
|
2019-12-05 09:09:56 +01:00
|
|
|
<phase>prepare-package</phase>
|
2013-05-13 09:03:00 +02:00
|
|
|
<goals>
|
|
|
|
<goal>jar-no-fork</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
2019-11-18 09:41:25 +01:00
|
|
|
<execution>
|
|
|
|
<id>attach-test-sources</id>
|
2019-12-05 09:09:56 +01:00
|
|
|
<phase>prepare-package</phase>
|
2019-11-18 09:41:25 +01:00
|
|
|
<goals>
|
|
|
|
<goal>test-jar-no-fork</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
2012-06-13 03:43:16 +02:00
|
|
|
</executions>
|
|
|
|
</plugin>
|
2012-07-10 17:23:17 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>2.10.4</version>
|
2012-07-10 17:33:53 +02:00
|
|
|
<configuration>
|
|
|
|
<detectOfflineLinks>false</detectOfflineLinks>
|
2012-08-21 08:37:04 +02:00
|
|
|
<breakiterator>true</breakiterator>
|
|
|
|
<version>false</version>
|
|
|
|
<author>false</author>
|
|
|
|
<keywords>true</keywords>
|
2012-07-10 17:33:53 +02:00
|
|
|
</configuration>
|
2012-07-10 17:23:17 +02:00
|
|
|
</plugin>
|
2012-08-21 07:35:48 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>2.8.2</version>
|
2012-08-21 07:35:48 +02:00
|
|
|
<configuration>
|
|
|
|
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
|
2021-03-30 19:06:08 +02:00
|
|
|
<skip>${skipDeploy}</skip>
|
2012-08-21 07:35:48 +02:00
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2012-06-13 06:42:51 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-release-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<!-- Downgrade to 2.4.1 if release fails -->
|
|
|
|
<version>2.5.3</version>
|
2012-06-13 06:42:51 +02:00
|
|
|
<configuration>
|
2012-07-10 17:00:36 +02:00
|
|
|
<useReleaseProfile>false</useReleaseProfile>
|
2017-05-11 15:14:31 +02:00
|
|
|
<arguments>-P restricted-release,sonatype-oss-release,full</arguments>
|
2012-07-10 16:02:44 +02:00
|
|
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
2013-03-19 07:56:20 +01:00
|
|
|
<allowTimestampedSnapshots>false</allowTimestampedSnapshots>
|
2012-07-10 16:04:09 +02:00
|
|
|
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
2012-06-13 06:42:51 +02:00
|
|
|
</configuration>
|
2013-12-22 13:48:50 +01:00
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.maven.scm</groupId>
|
|
|
|
<artifactId>maven-scm-api</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.9.4</version>
|
2013-12-22 13:48:50 +01:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.maven.scm</groupId>
|
|
|
|
<artifactId>maven-scm-provider-gitexe</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.9.4</version>
|
2013-12-22 13:48:50 +01:00
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
2012-06-13 06:42:51 +02:00
|
|
|
</plugin>
|
2013-11-26 12:27:58 +01:00
|
|
|
|
|
|
|
<!-- Ensure to put maven-antrun-plugin at the end of the plugin list
|
|
|
|
so that they are run lastly in the same phase. -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<!-- Generate the version properties for all artifacts. -->
|
|
|
|
<execution>
|
|
|
|
<id>write-version-properties</id>
|
|
|
|
<phase>initialize</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
2014-05-23 13:03:14 +02:00
|
|
|
<configuration>
|
2013-11-26 12:27:58 +01:00
|
|
|
<target>
|
|
|
|
<taskdef resource="net/sf/antcontrib/antlib.xml" />
|
|
|
|
|
|
|
|
<!-- Get the information about the latest commit -->
|
2014-08-15 02:30:59 +02:00
|
|
|
<exec executable="git" outputproperty="gitOutput.lastCommit" resultproperty="gitExitCode.lastCommit" failonerror="false" failifexecutionfails="false">
|
2013-11-26 12:27:58 +01:00
|
|
|
<arg value="log" />
|
|
|
|
<arg value="-1" />
|
2014-08-14 00:41:42 +02:00
|
|
|
<arg value="--format=format:%h %H %cd" />
|
2013-11-26 12:27:58 +01:00
|
|
|
<arg value="--date=iso" />
|
|
|
|
</exec>
|
2014-08-15 02:30:59 +02:00
|
|
|
<propertyregex property="shortCommitHash" input="${gitOutput.lastCommit}" regexp="^([0-9a-f]+) .*$" select="\1" casesensitive="true" defaultValue="0" />
|
|
|
|
<propertyregex property="longCommitHash" input="${gitOutput.lastCommit}" regexp="^[0-9a-f]+ ([0-9a-f]{40}) .*$" select="\1" casesensitive="true" defaultValue="0000000000000000000000000000000000000000" />
|
|
|
|
<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" />
|
2014-08-14 00:41:42 +02:00
|
|
|
|
|
|
|
<!-- Get the information abount whether the repository is clean or dirty -->
|
2014-08-15 02:30:59 +02:00
|
|
|
<exec executable="git" outputproperty="gitOutput.repoStatus" resultproperty="gitExitCode.repoStatus" failonerror="false" failifexecutionfails="false">
|
2013-11-26 12:27:58 +01:00
|
|
|
<arg value="status" />
|
|
|
|
<arg value="--porcelain" />
|
|
|
|
</exec>
|
|
|
|
<if>
|
|
|
|
<equals arg2="0" arg1="${gitExitCode.repoStatus}" />
|
|
|
|
<then>
|
|
|
|
<if>
|
|
|
|
<equals arg2="" arg1="${gitOutput.repoStatus}" />
|
|
|
|
<then>
|
|
|
|
<property name="repoStatus" value="clean" />
|
|
|
|
</then>
|
|
|
|
<else>
|
|
|
|
<property name="repoStatus" value="dirty" />
|
|
|
|
</else>
|
|
|
|
</if>
|
|
|
|
</then>
|
|
|
|
<else>
|
|
|
|
<property name="repoStatus" value="unknown" />
|
|
|
|
</else>
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<!-- Print the obtained commit information. -->
|
|
|
|
<echo>Current commit: ${shortCommitHash} on ${commitDate}</echo>
|
|
|
|
|
|
|
|
<!-- Generate the .properties file. -->
|
|
|
|
<!--
|
2013-11-28 15:04:46 +01:00
|
|
|
<property name="metaInfDir" value="${project.basedir}/src/main/resources/META-INF" />
|
2013-11-26 12:27:58 +01:00
|
|
|
-->
|
2013-11-28 15:04:46 +01:00
|
|
|
<property name="metaInfDir" value="${project.build.outputDirectory}/META-INF" />
|
2013-11-26 12:27:58 +01:00
|
|
|
<property name="versionPropFile" value="${metaInfDir}/${project.groupId}.versions.properties" />
|
|
|
|
<mkdir dir="${metaInfDir}" />
|
2013-11-28 15:04:46 +01:00
|
|
|
<delete file="${versionPropFile}" quiet="true" />
|
2013-11-26 12:27:58 +01:00
|
|
|
|
2013-11-28 15:04:46 +01:00
|
|
|
<propertyfile file="${versionPropFile}" comment="Generated by netty-parent/pom.xml">
|
|
|
|
<entry key="${project.artifactId}.version" value="${project.version}" />
|
|
|
|
<entry key="${project.artifactId}.buildDate" type="date" value="now" pattern="yyyy-MM-dd HH:mm:ss Z" />
|
|
|
|
<entry key="${project.artifactId}.commitDate" value="${commitDate}" />
|
|
|
|
<entry key="${project.artifactId}.shortCommitHash" value="${shortCommitHash}" />
|
|
|
|
<entry key="${project.artifactId}.longCommitHash" value="${longCommitHash}" />
|
|
|
|
<entry key="${project.artifactId}.repoStatus" value="${repoStatus}" />
|
2013-11-26 12:27:58 +01:00
|
|
|
</propertyfile>
|
|
|
|
</target>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.ant</groupId>
|
|
|
|
<artifactId>ant</artifactId>
|
2021-08-10 19:49:36 +02:00
|
|
|
<version>1.10.11</version>
|
2013-11-26 12:27:58 +01:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.ant</groupId>
|
|
|
|
<artifactId>ant-launcher</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.9.7</version>
|
2013-11-26 12:27:58 +01:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>ant-contrib</groupId>
|
|
|
|
<artifactId>ant-contrib</artifactId>
|
|
|
|
<version>1.0b3</version>
|
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>ant</groupId>
|
|
|
|
<artifactId>ant</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</plugin>
|
2017-01-16 18:36:32 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-remote-resources-plugin</artifactId>
|
|
|
|
<version>1.5</version>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>de.thetaphi</groupId>
|
|
|
|
<artifactId>forbiddenapis</artifactId>
|
|
|
|
<version>2.2</version>
|
|
|
|
</plugin>
|
2008-08-08 02:37:18 +02:00
|
|
|
</plugins>
|
2012-02-07 07:30:41 +01:00
|
|
|
|
|
|
|
<pluginManagement>
|
|
|
|
<plugins>
|
2013-02-06 07:57:11 +01:00
|
|
|
<!-- keep surefire and failsafe in sync -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
2021-02-10 15:35:30 +01:00
|
|
|
<version>2.22.2</version>
|
2013-02-06 07:57:11 +01:00
|
|
|
</plugin>
|
|
|
|
<!-- keep surefire and failsafe in sync -->
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
2021-02-10 15:35:30 +01:00
|
|
|
<version>2.22.2</version>
|
2013-02-06 07:57:11 +01:00
|
|
|
</plugin>
|
2012-09-28 10:45:40 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-clean-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>3.0.0</version>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-resources-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>3.0.1</version>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
2016-02-28 09:27:41 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.ops4j.pax.exam</groupId>
|
|
|
|
<artifactId>maven-paxexam-plugin</artifactId>
|
|
|
|
<version>1.2.4</version>
|
|
|
|
</plugin>
|
2012-09-28 10:45:40 +02:00
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-jar-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>3.0.2</version>
|
2013-11-26 12:27:58 +01:00
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>default-jar</id>
|
|
|
|
<configuration>
|
|
|
|
<archive>
|
|
|
|
<manifest>
|
|
|
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
|
|
|
</manifest>
|
2017-09-23 08:52:39 +02:00
|
|
|
<manifestEntries>
|
|
|
|
<Automatic-Module-Name>${javaModuleName}</Automatic-Module-Name>
|
|
|
|
</manifestEntries>
|
2013-11-26 12:27:58 +01:00
|
|
|
<index>true</index>
|
|
|
|
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
|
|
|
|
</archive>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
2019-11-18 09:41:25 +01:00
|
|
|
<execution>
|
|
|
|
<goals>
|
|
|
|
<goal>test-jar</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
2013-11-26 12:27:58 +01:00
|
|
|
</executions>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>2.10</version>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>2.6</version>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-jxr-plugin</artifactId>
|
2021-05-17 20:12:06 +02:00
|
|
|
<version>3.1.1</version>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
|
|
|
<plugin>
|
2012-12-05 22:11:48 +01:00
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.8</version>
|
2012-12-05 22:11:48 +01:00
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>ant-contrib</groupId>
|
|
|
|
<artifactId>ant-contrib</artifactId>
|
|
|
|
<version>1.0b3</version>
|
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>ant</groupId>
|
|
|
|
<artifactId>ant</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
</exclusions>
|
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
2012-09-28 10:45:40 +02:00
|
|
|
</plugin>
|
2012-11-11 22:35:56 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.10</version>
|
2015-02-06 20:52:23 +01:00
|
|
|
</plugin>
|
2014-05-01 12:26:51 +02:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.fusesource.hawtjni</groupId>
|
|
|
|
<artifactId>maven-hawtjni-plugin</artifactId>
|
2016-06-25 14:37:33 +02:00
|
|
|
<version>1.14</version>
|
2014-05-01 12:26:51 +02:00
|
|
|
</plugin>
|
2014-05-23 13:03:14 +02:00
|
|
|
<plugin>
|
|
|
|
<groupId>kr.motd.maven</groupId>
|
|
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
|
|
<version>1.0.0.Final</version>
|
|
|
|
</plugin>
|
2016-03-27 14:25:39 +02:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-shade-plugin</artifactId>
|
2019-12-05 09:09:56 +01:00
|
|
|
<version>3.2.1</version>
|
2016-03-27 14:25:39 +02:00
|
|
|
</plugin>
|
2012-09-28 10:45:40 +02:00
|
|
|
|
|
|
|
<!-- Workaround for the 'M2E plugin execution not covered' problem.
|
2020-10-23 14:44:18 +02:00
|
|
|
See: https://wiki.eclipse.org/M2E_plugin_execution_not_covered -->
|
2012-02-07 07:30:41 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
|
|
<version>1.0.0</version>
|
|
|
|
<configuration>
|
|
|
|
<lifecycleMappingMetadata>
|
|
|
|
<pluginExecutions>
|
2013-11-24 13:40:47 +01:00
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<versionRange>[1.7,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-08-15 02:30:59 +02:00
|
|
|
<ignore />
|
2013-11-24 13:40:47 +01:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
2012-02-07 07:30:41 +01:00
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
|
|
<versionRange>[1.0,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>check</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-08-15 02:30:59 +02:00
|
|
|
<ignore />
|
2012-06-11 14:38:42 +02:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
|
|
<versionRange>[1.0,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>enforce</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-08-15 02:30:59 +02:00
|
|
|
<ignore />
|
2012-02-07 07:30:41 +01:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
2012-08-08 09:30:04 +02:00
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
|
|
<versionRange>[1.0,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>clean</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-08-15 02:30:59 +02:00
|
|
|
<ignore />
|
2012-08-08 09:30:04 +02:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
2013-11-27 10:54:51 +01:00
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.felix</groupId>
|
|
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
|
|
<versionRange>[2.4,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>manifest</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-08-15 02:30:59 +02:00
|
|
|
<ignore />
|
2013-11-27 10:54:51 +01:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
2014-05-12 14:35:13 +02:00
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.fusesource.hawtjni</groupId>
|
|
|
|
<artifactId>maven-hawtjni-plugin</artifactId>
|
|
|
|
<versionRange>[1.10,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>generate</goal>
|
|
|
|
<goal>build</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-07-04 10:25:54 +02:00
|
|
|
<ignore />
|
2014-05-12 14:35:13 +02:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<versionRange>[2.8,)</versionRange>
|
|
|
|
<goals>
|
2014-07-06 09:52:20 +02:00
|
|
|
<goal>get</goal>
|
2014-05-12 14:35:13 +02:00
|
|
|
<goal>copy</goal>
|
2014-07-06 09:52:20 +02:00
|
|
|
<goal>properties</goal>
|
2014-05-12 14:35:13 +02:00
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
2014-07-04 10:25:54 +02:00
|
|
|
<ignore />
|
2014-05-12 14:35:13 +02:00
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
2012-02-07 07:30:41 +01:00
|
|
|
</pluginExecutions>
|
|
|
|
</lifecycleMappingMetadata>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2017-01-16 18:36:32 +01:00
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-remote-resources-plugin</artifactId>
|
|
|
|
<version>1.5</version>
|
|
|
|
<configuration>
|
|
|
|
<resourceBundles>
|
|
|
|
<resourceBundle>io.netty:netty-dev-tools:${project.version}</resourceBundle>
|
|
|
|
</resourceBundles>
|
|
|
|
<outputDirectory>${netty.dev.tools.directory}</outputDirectory>
|
|
|
|
<!-- don't include netty-dev-tools in artifacts -->
|
|
|
|
<attachToMain>false</attachToMain>
|
|
|
|
<attachToTest>false</attachToTest>
|
|
|
|
</configuration>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<goals>
|
|
|
|
<goal>process</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<plugin>
|
|
|
|
<groupId>de.thetaphi</groupId>
|
|
|
|
<artifactId>forbiddenapis</artifactId>
|
|
|
|
<version>2.2</version>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>check-forbidden-apis</id>
|
|
|
|
<configuration>
|
|
|
|
<targetVersion>${maven.compiler.target}</targetVersion>
|
|
|
|
<!-- allow undocumented classes like sun.misc.Unsafe: -->
|
|
|
|
<internalRuntimeForbidden>false</internalRuntimeForbidden>
|
|
|
|
<!-- if the used Java version is too new, don't fail, just do nothing: -->
|
|
|
|
<failOnUnsupportedJava>false</failOnUnsupportedJava>
|
|
|
|
<bundledSignatures>
|
|
|
|
<!-- This will automatically choose the right signatures based on 'targetVersion': -->
|
|
|
|
<!-- enabling these should be done in the future -->
|
|
|
|
<!-- bundledSignature>jdk-unsafe</bundledSignature -->
|
|
|
|
<!-- bundledSignature>jdk-deprecated</bundledSignature -->
|
|
|
|
<!-- bundledSignature>jdk-system-out</bundledSignature -->
|
|
|
|
</bundledSignatures>
|
|
|
|
<signaturesFiles>
|
|
|
|
<signaturesFile>${netty.dev.tools.directory}/forbidden/signatures.txt</signaturesFile>
|
|
|
|
</signaturesFiles>
|
|
|
|
<suppressAnnotations><annotation>**.SuppressForbidden</annotation></suppressAnnotations>
|
|
|
|
</configuration>
|
|
|
|
<phase>compile</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>check</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
<execution>
|
|
|
|
<id>check-forbidden-test-apis</id>
|
|
|
|
<configuration>
|
|
|
|
<targetVersion>${maven.compiler.target}</targetVersion>
|
|
|
|
<!-- allow undocumented classes like sun.misc.Unsafe: -->
|
|
|
|
<internalRuntimeForbidden>true</internalRuntimeForbidden>
|
|
|
|
<!-- if the used Java version is too new, don't fail, just do nothing: -->
|
|
|
|
<failOnUnsupportedJava>false</failOnUnsupportedJava>
|
|
|
|
<bundledSignatures>
|
|
|
|
<!-- This will automatically choose the right signatures based on 'targetVersion': -->
|
|
|
|
<!-- enabling these should be done in the future -->
|
|
|
|
<!-- bundledSignature>jdk-unsafe</bundledSignature -->
|
|
|
|
<!-- bundledSignature>jdk-deprecated</bundledSignature -->
|
|
|
|
</bundledSignatures>
|
|
|
|
<signaturesFiles>
|
|
|
|
<signaturesFile>${netty.dev.tools.directory}/forbidden/signatures.txt</signaturesFile>
|
|
|
|
</signaturesFiles>
|
|
|
|
<suppressAnnotations><annotation>**.SuppressForbidden</annotation></suppressAnnotations>
|
|
|
|
</configuration>
|
|
|
|
<phase>test-compile</phase>
|
|
|
|
<goals>
|
|
|
|
<goal>testCheck</goal>
|
|
|
|
</goals>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
2012-02-07 07:30:41 +01:00
|
|
|
</plugins>
|
|
|
|
</pluginManagement>
|
2008-08-08 02:37:18 +02:00
|
|
|
</build>
|
2012-11-26 06:53:15 +01:00
|
|
|
</project>
|