On Fri, Jan 22, 2021 at 9:31 AM Martin Grigorov <mgrigo...@apache.org> wrote:
> On Mon, Jan 18, 2021 at 1:07 PM <r...@apache.org> wrote: > > > This is an automated email from the ASF dual-hosted git repository. > > > > remm pushed a commit to branch master > > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > > > > > The following commit(s) were added to refs/heads/master by this push: > > new 16e3ef4 Add UDS test case > > new bda7cbb Merge branch 'master' of g...@github.com: > > apache/tomcat.git > > 16e3ef4 is described below > > > > commit 16e3ef43f2fd3aa4ac9dcf14a8e985ef0754022c > > Author: remm <r...@apache.org> > > AuthorDate: Mon Jan 18 12:06:22 2021 +0100 > > > > Add UDS test case > > > > And a Java 16 compat flag. > > --- > > java/org/apache/tomcat/util/compat/JreCompat.java | 9 +++++++ > > .../apache/tomcat/util/net/TestXxxEndpoint.java | 29 > > ++++++++++++++++++++++ > > 2 files changed, 38 insertions(+) > > > > diff --git a/java/org/apache/tomcat/util/compat/JreCompat.java > > b/java/org/apache/tomcat/util/compat/JreCompat.java > > index b8b3b48..d58c1a0 100644 > > --- a/java/org/apache/tomcat/util/compat/JreCompat.java > > +++ b/java/org/apache/tomcat/util/compat/JreCompat.java > > @@ -45,6 +45,7 @@ public class JreCompat { > > > > private static final JreCompat instance; > > private static final boolean graalAvailable; > > + private static final boolean jre16Available; > > private static final boolean jre11Available; > > private static final boolean jre9Available; > > private static final StringManager sm = > > StringManager.getManager(JreCompat.class); > > @@ -69,12 +70,15 @@ public class JreCompat { > > if (Jre16Compat.isSupported()) { > > instance = new Jre16Compat(); > > jre9Available = true; > > + jre16Available = true; > > } else if (Jre9Compat.isSupported()) { > > instance = new Jre9Compat(); > > jre9Available = true; > > + jre16Available = false; > > } else { > > instance = new JreCompat(); > > jre9Available = false; > > + jre16Available = false; > > } > > jre11Available = instance.jarFileRuntimeMajorVersion() >= 11; > > > > @@ -116,6 +120,11 @@ public class JreCompat { > > } > > > > > > + public static boolean isJre16Available() { > > + return jre16Available; > > + } > > + > > + > > // Java 8 implementation of Java 9 methods > > > > /** > > diff --git a/test/org/apache/tomcat/util/net/TestXxxEndpoint.java > > b/test/org/apache/tomcat/util/net/TestXxxEndpoint.java > > index 2db184f..12a4015 100644 > > --- a/test/org/apache/tomcat/util/net/TestXxxEndpoint.java > > +++ b/test/org/apache/tomcat/util/net/TestXxxEndpoint.java > > @@ -19,8 +19,12 @@ package org.apache.tomcat.util.net; > > import java.io.File; > > import java.net.InetAddress; > > import java.net.ServerSocket; > > +import java.net.SocketAddress; > > +import java.nio.ByteBuffer; > > +import java.nio.channels.SocketChannel; > > > > import org.junit.Assert; > > +import org.junit.Assume; > > import org.junit.Test; > > > > import org.apache.catalina.connector.Connector; > > @@ -29,6 +33,7 @@ import org.apache.catalina.startup.TomcatBaseTest; > > import org.apache.tomcat.jni.Error; > > import org.apache.tomcat.jni.Library; > > import org.apache.tomcat.jni.Pool; > > +import org.apache.tomcat.util.compat.JreCompat; > > > > /** > > * Test case for the Endpoint implementations. The testing framework > will > > ensure > > @@ -206,4 +211,28 @@ public class TestXxxEndpoint extends TomcatBaseTest > { > > Assert.assertNull(e); > > tomcat.getConnector().start(); > > } > > + > > + @Test > > + public void testUnixDomainSocket() throws Exception { > > + > > > > maybe move Assume.assumeTrue("JDK 16 is > required", JreCompat.isJre16Available()); here ? Before starting Tomcat > instance > > > > + Tomcat tomcat = getTomcatInstance(); > > + Connector c = tomcat.getConnector(); > > + Assume.assumeTrue("SSL renegotiation has to be supported for > this > > test", > > > > Is this copy/paste error ? > The SSL renegotiation message seems unrelated. > > > > + c.getProtocolHandlerClassName().contains("Nio") > > + && JreCompat.isJre16Available()); > > + > > + final String unixDomainSocketPath = "/tmp/testUnixDomainSocket"; > > + Assert.assertTrue(c.setProperty("unixDomainSocketPath", > > unixDomainSocketPath)); > > + tomcat.start(); > > + > > + SocketAddress sa = > > JreCompat.getInstance().getUnixDomainSocketAddress(unixDomainSocketPath); > > + ByteBuffer response = ByteBuffer.allocate(1024); > > + try (SocketChannel socket = > > JreCompat.getInstance().openUnixDomainSocketChannel()) { > > + socket.connect(sa); > > + socket.write(ByteBuffer.wrap("OPTIONS * > > HTTP/1.0\r\n\r\n".getBytes())); > > > > Is HTTP/1.0 intentional ? Because the assertion below checks for 1.1 > Everything is fine except the message (ooops). Rémy