diff --git a/all/pom.xml b/all/pom.xml
index e1110edd79..0c9356ef6e 100644
--- a/all/pom.xml
+++ b/all/pom.xml
@@ -29,7 +29,6 @@
Netty/All-in-One
- true
${project.build.directory}/src
${project.build.directory}/versions
@@ -37,9 +36,91 @@
full
-
- false
-
+
+
+
+
+
+
+
+ maven-jxr-plugin
+
+
+ generate-xref
+ package
+
+ jxr
+
+
+
+
+ true
+ ${project.build.directory}/xref
+ ${project.build.directory}/api
+ Netty Source Xref (${project.version})
+ Netty Source Xref (${project.version})
+
+
+
+ ${project.groupId}
+ netty-build
+ 19
+
+
+
+
+ com.puppycrawl.tools
+ checkstyle
+
+
+
+
+ com.puppycrawl.tools
+ checkstyle
+ 7.3
+
+
+
+
+
+
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+ ${quickbuild}
+ *.internal,*.example
+ true
+ ${project.build.directory}/api
+ ${project.basedir}/src/javadoc/overview.html
+ Netty API Reference (${project.version})
+ Netty API Reference (${project.version})
+ false
+
+ -link http://docs.oracle.com/javase/7/docs/api/
+ -link http://code.google.com/apis/protocolbuffers/docs/reference/java/
+ -link http://docs.oracle.com/javaee/6/api/
+ -link http://www.slf4j.org/apidocs/
+ -link https://commons.apache.org/proper/commons-logging/apidocs/
+ -link http://logging.apache.org/log4j/1.2/apidocs/
+
+ -group "Low-level data representation" io.netty.buffer*
+ -group "Central interface for all I/O operations" io.netty.channel*
+ -group "Client & Server bootstrapping utilities" io.netty.bootstrap*
+ -group "Reusable I/O event interceptors" io.netty.handler*
+ -group "Miscellaneous" io.netty.util*
+
+ en_US
+
+
+
+
coverage
@@ -450,73 +531,6 @@
-
-
-
- maven-jxr-plugin
-
-
- generate-xref
- package
-
- jxr
-
-
-
-
- ${quickbuild}
- true
- ${project.build.directory}/xref
- ${project.build.directory}/api
- Netty Source Xref (${project.version})
- Netty Source Xref (${project.version})
-
-
-
- ${project.groupId}
- netty-build
- 19
-
-
-
-
-
-
- maven-javadoc-plugin
-
-
- attach-javadocs
-
- jar
-
-
-
-
- ${quickbuild}
- *.internal,*.example
- true
- ${project.build.directory}/api
- ${project.basedir}/src/javadoc/overview.html
- Netty API Reference (${project.version})
- Netty API Reference (${project.version})
- false
-
- -link http://docs.oracle.com/javase/7/docs/api/
- -link http://code.google.com/apis/protocolbuffers/docs/reference/java/
- -link http://docs.oracle.com/javaee/6/api/
- -link http://www.slf4j.org/apidocs/
- -link https://commons.apache.org/proper/commons-logging/apidocs/
- -link http://logging.apache.org/log4j/1.2/apidocs/
-
- -group "Low-level data representation" io.netty.buffer*
- -group "Central interface for all I/O operations" io.netty.channel*
- -group "Client & Server bootstrapping utilities" io.netty.bootstrap*
- -group "Reusable I/O event interceptors" io.netty.handler*
- -group "Miscellaneous" io.netty.util*
-
- en_US
-
-
diff --git a/codec-socks/src/test/java/io/netty/handler/codec/socks/SocksCmdRequestDecoderTest.java b/codec-socks/src/test/java/io/netty/handler/codec/socks/SocksCmdRequestDecoderTest.java
index d446d8f47e..bfaf5da550 100644
--- a/codec-socks/src/test/java/io/netty/handler/codec/socks/SocksCmdRequestDecoderTest.java
+++ b/codec-socks/src/test/java/io/netty/handler/codec/socks/SocksCmdRequestDecoderTest.java
@@ -19,7 +19,9 @@ import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.util.internal.logging.InternalLoggerFactory;
import org.junit.Test;
-import sun.net.util.IPAddressUtil;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import static org.junit.Assert.*;
@@ -62,8 +64,8 @@ public class SocksCmdRequestDecoderTest {
}
@Test
- public void testCmdRequestDecoderIPv6() {
- String[] hosts = {SocksCommonUtils.ipv6toStr(IPAddressUtil.textToNumericFormatV6("::1"))};
+ public void testCmdRequestDecoderIPv6() throws UnknownHostException {
+ String[] hosts = {SocksCommonUtils.ipv6toStr(InetAddress.getByName("::1").getAddress())};
int[] ports = {1, 32769, 65535};
for (SocksCmdType cmdType : SocksCmdType.values()) {
for (String host : hosts) {
diff --git a/common/pom.xml b/common/pom.xml
index ffcc18e73e..143b142b5e 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -98,6 +98,30 @@
+
+
+
+
+ org.ow2.asm
+ asm
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-commons
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-analysis
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-util
+ ${asm.version}
+
+
org.apache.felix
diff --git a/handler/src/main/java/io/netty/handler/ssl/JdkAlpnSslEngine.java b/handler/src/main/java/io/netty/handler/ssl/JdkAlpnSslEngine.java
index bdf3aca146..799c6f939d 100644
--- a/handler/src/main/java/io/netty/handler/ssl/JdkAlpnSslEngine.java
+++ b/handler/src/main/java/io/netty/handler/ssl/JdkAlpnSslEngine.java
@@ -26,6 +26,7 @@ import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLHandshakeException;
+import io.netty.util.internal.PlatformDependent;
import org.eclipse.jetty.alpn.ALPN;
import org.eclipse.jetty.alpn.ALPN.ClientProvider;
import org.eclipse.jetty.alpn.ALPN.ServerProvider;
@@ -39,7 +40,8 @@ final class JdkAlpnSslEngine extends JdkSslEngine {
}
private static void updateAvailability() {
- if (available) {
+ // TODO: Add support for ALPN when using Java9 and still be able to configure it the Netty way.
+ if (available || PlatformDependent.javaVersion() > 8) {
return;
}
diff --git a/handler/src/test/java/io/netty/handler/ssl/SslErrorTest.java b/handler/src/test/java/io/netty/handler/ssl/SslErrorTest.java
index d3c238b5a9..87e4919eb6 100644
--- a/handler/src/test/java/io/netty/handler/ssl/SslErrorTest.java
+++ b/handler/src/test/java/io/netty/handler/ssl/SslErrorTest.java
@@ -37,7 +37,6 @@ import org.junit.Assume;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import sun.security.validator.ValidatorException;
import javax.net.ssl.ManagerFactoryParameters;
import javax.net.ssl.SSLException;
@@ -103,7 +102,7 @@ public class SslErrorTest {
}
private static CertificateException newCertificateException(CertPathValidatorException.Reason reason) {
- return new ValidatorException("Test exception",
+ return new TestCertificateException(
new CertPathValidatorException("x", null, null, -1, reason));
}
@@ -197,7 +196,7 @@ public class SslErrorTest {
// Unwrap as its wrapped by a DecoderException
Throwable unwrappedCause = cause.getCause();
if (unwrappedCause instanceof SSLException) {
- if (exception instanceof ValidatorException) {
+ if (exception instanceof TestCertificateException) {
CertPathValidatorException.Reason reason =
((CertPathValidatorException) exception.getCause()).getReason();
if (reason == CertPathValidatorException.BasicReason.EXPIRED) {
@@ -245,4 +244,11 @@ public class SslErrorTest {
promise.setFailure(new AssertionError("message not contains '" + messagePart + "': " + message));
}
}
+
+ private static final class TestCertificateException extends CertificateException {
+
+ public TestCertificateException(Throwable cause) {
+ super(cause);
+ }
+ }
}
diff --git a/pom.xml b/pom.xml
index bd72f9b979..7c1024e387 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,24 @@
+
+
+ java9
+
+
+ --add-modules java.xml.bind --add-exports java.base/sun.security.x509=ALL-UNNAMED
+
+
+
+
+
+ 6.0_ALPHA
+
+
+ 9
+
+
+
leak
@@ -220,6 +238,7 @@
-D_
-D_
-D_
+
fedora
@@ -230,6 +249,7 @@
${project.basedir}/../common/src/test/resources/logback-test.xml
debug
2.6.2
+ 5.1
@@ -619,7 +639,7 @@
org.ow2.asm
asm-all
- 5.1
+ ${asm.version}
@@ -667,6 +687,10 @@
java.security.cert.CertPathValidatorException$BasicReason
java.util.concurrent.ConcurrentLinkedDeque
+
+
+ java.nio.ByteBuffer
+ java.nio.CharBuffer
@@ -765,7 +789,7 @@
${logging.config}
${logging.logLevel}
- ${argLine.common} ${argLine.alpnAgent} ${argLine.leak} ${argLine.coverage} ${argLine.noUnsafe}
+ ${argLine.common} ${argLine.alpnAgent} ${argLine.leak} ${argLine.coverage} ${argLine.noUnsafe} ${argLine.java9}
listener