diff --git a/Jenkinsfile b/Jenkinsfile index 9dc9700e90dd..a24b68540f94 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -99,7 +99,7 @@ def mavenBuild(jdk, cmdline, mvnName) { "MAVEN_OPTS=-Xms2g -Xmx4g -Djava.awt.headless=true"]) { configFileProvider( [configFile(fileId: 'oss-settings.xml', variable: 'GLOBAL_MVN_SETTINGS')]) { - sh "mvn --no-transfer-progress -s $GLOBAL_MVN_SETTINGS -Dmaven.repo.local=.repository -Pci -V -B -e -Djetty.testtracker.log=true $cmdline -Dunix.socket.tmp=/tmp/unixsocket" + sh "mvn --no-transfer-progress -s $GLOBAL_MVN_SETTINGS -Dmaven.repo.local=.repository -Pci -V -B -e -Djetty.testtracker.log=true $cmdline" } } } diff --git a/Jenkinsfile-autobahn b/Jenkinsfile-autobahn index 0944e587368d..0e92efd217d6 100644 --- a/Jenkinsfile-autobahn +++ b/Jenkinsfile-autobahn @@ -80,7 +80,7 @@ def mavenBuild(jdk, cmdline, mvnName, junitPublishDisabled) { mavenOpts: mavenOpts, mavenLocalRepo: localRepo) { // Some common Maven command line + provided command line - sh "mvn -Pci -V -B -e -fae -Dmaven.test.failure.ignore=true -Djetty.testtracker.log=true $cmdline -Dunix.socket.tmp=" + env.JENKINS_HOME + sh "mvn -Pci -V -B -e -fae -Dmaven.test.failure.ignore=true -Djetty.testtracker.log=true $cmdline" } } diff --git a/jetty-unixdomain-server/src/test/java/org/eclipse/jetty/unixdomain/server/UnixDomainTest.java b/jetty-unixdomain-server/src/test/java/org/eclipse/jetty/unixdomain/server/UnixDomainTest.java index 29e770eaa2ba..4313a14e3cb5 100644 --- a/jetty-unixdomain-server/src/test/java/org/eclipse/jetty/unixdomain/server/UnixDomainTest.java +++ b/jetty-unixdomain-server/src/test/java/org/eclipse/jetty/unixdomain/server/UnixDomainTest.java @@ -52,6 +52,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; @EnabledForJreRange(min = JRE.JAVA_16) public class UnixDomainTest @@ -84,7 +85,10 @@ private void start(Handler handler) throws Exception { server = new Server(); UnixDomainServerConnector connector = new UnixDomainServerConnector(server, factories); - unixDomainPath = Files.createTempFile(Path.of("/tmp"), "unixdomain_", ".sock"); + String dir = System.getProperty("jetty.unixdomain.dir"); + assertNotNull(dir); + unixDomainPath = Files.createTempFile(Path.of(dir), "unix_", ".sock"); + assertTrue(unixDomainPath.toAbsolutePath().toString().length() < 108, "Unix-Domain path too long"); Files.delete(unixDomainPath); connector.setUnixDomainPath(unixDomainPath); server.addConnector(connector); diff --git a/jetty-unixsocket/jetty-unixsocket-client/src/test/java/org/eclipse/jetty/unixsocket/UnixSocketTest.java b/jetty-unixsocket/jetty-unixsocket-client/src/test/java/org/eclipse/jetty/unixsocket/UnixSocketTest.java index 3c3d981a9b4b..9ceb0ca6b5e3 100644 --- a/jetty-unixsocket/jetty-unixsocket-client/src/test/java/org/eclipse/jetty/unixsocket/UnixSocketTest.java +++ b/jetty-unixsocket/jetty-unixsocket-client/src/test/java/org/eclipse/jetty/unixsocket/UnixSocketTest.java @@ -18,7 +18,6 @@ import java.net.ConnectException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.Date; import java.util.concurrent.ExecutionException; import javax.servlet.http.HttpServletRequest; @@ -32,7 +31,6 @@ import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.unixsocket.client.HttpClientTransportOverUnixSockets; import org.eclipse.jetty.unixsocket.server.UnixSocketConnector; -import org.eclipse.jetty.util.StringUtil; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; @@ -45,9 +43,9 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.instanceOf; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assumptions.assumeTrue; import static org.junit.jupiter.api.condition.OS.LINUX; import static org.junit.jupiter.api.condition.OS.MAC; @@ -65,18 +63,11 @@ public void before() throws Exception { server = null; httpClient = null; - String unixSocketTmp = System.getProperty("unix.socket.tmp"); - if (StringUtil.isNotBlank(unixSocketTmp)) - sockFile = Files.createTempFile(Paths.get(unixSocketTmp), "unix", ".sock"); - else - sockFile = Files.createTempFile("unix", ".sock"); - if (sockFile.toAbsolutePath().toString().length() > UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH) - { - Path tmp = Paths.get("/tmp"); - assumeTrue(Files.exists(tmp) && Files.isDirectory(tmp)); - sockFile = Files.createTempFile(tmp, "unix", ".sock"); - } - assertTrue(Files.deleteIfExists(sockFile), "temp sock file cannot be deleted"); + String dir = System.getProperty("jetty.unixdomain.dir"); + assertNotNull(dir); + sockFile = Files.createTempFile(Path.of(dir), "unix_", ".sock"); + assertTrue(sockFile.toAbsolutePath().toString().length() < UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH, "Unix-Domain path too long"); + Files.delete(sockFile); } @AfterEach diff --git a/pom.xml b/pom.xml index f7d41aa237ce..028c859bec78 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ 1995 + /tmp 11 11 11 @@ -44,7 +45,6 @@ 3.4.1.Final 1.0.6 1.10.9 - org.slf4j;version="[1.7,3.0)", org.slf4j.event;version="[1.7,3.0)", org.slf4j.helpers;version="[1.7,3.0)", org.slf4j.spi;version="[1.7,3.0)" @@ -685,7 +685,7 @@ alphabetical ${project.build.directory} - ${unix.socket.tmp} + ${jetty.unixdomain.dir} true ${jetty.testtracker.log} @@ -1245,6 +1245,17 @@ + + unix-domain-windows + + + Windows + + + + ${user.home} + + errorprone diff --git a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java index 1cc0b7d61351..089d539fe79b 100644 --- a/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java +++ b/tests/test-distribution/src/test/java/org/eclipse/jetty/tests/distribution/DistributionTests.java @@ -39,7 +39,6 @@ import org.eclipse.jetty.unixsocket.server.UnixSocketConnector; import org.eclipse.jetty.util.BlockingArrayQueue; import org.eclipse.jetty.util.IO; -import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.StatusCode; @@ -63,8 +62,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assumptions.assumeTrue; public class DistributionTests extends AbstractJettyHomeTest { @@ -279,20 +278,11 @@ private void testSimpleWebAppWithJSPOverHTTP2(boolean ssl) throws Exception @DisabledOnOs(OS.WINDOWS) // jnr not supported on windows public void testUnixSocket() throws Exception { - Path tmpSockFile; - String unixSocketTmp = System.getProperty("unix.socket.tmp"); - if (StringUtil.isNotBlank(unixSocketTmp)) - tmpSockFile = Files.createTempFile(Paths.get(unixSocketTmp), "unix", ".sock"); - else - tmpSockFile = Files.createTempFile("unix", ".sock"); - if (tmpSockFile.toAbsolutePath().toString().length() > UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH) - { - Path tmp = Paths.get("/tmp"); - assumeTrue(Files.exists(tmp) && Files.isDirectory(tmp)); - tmpSockFile = Files.createTempFile(tmp, "unix", ".sock"); - } - Path sockFile = tmpSockFile; - assertTrue(Files.deleteIfExists(sockFile), "temp sock file cannot be deleted"); + String dir = System.getProperty("jetty.unixdomain.dir"); + assertNotNull(dir); + Path sockFile = Files.createTempFile(Path.of(dir), "unix_", ".sock"); + assertTrue(sockFile.toAbsolutePath().toString().length() < UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH, "Unix-Domain path too long"); + Files.delete(sockFile); String jettyVersion = System.getProperty("jettyVersion"); JettyHomeTester distribution = JettyHomeTester.Builder.newInstance() diff --git a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/TransportScenario.java b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/TransportScenario.java index a0d49548f065..4f5b0f3990a9 100644 --- a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/TransportScenario.java +++ b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/TransportScenario.java @@ -17,7 +17,6 @@ import java.lang.management.ManagementFactory; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -52,12 +51,10 @@ import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.unixsocket.client.HttpClientTransportOverUnixSockets; import org.eclipse.jetty.unixsocket.server.UnixSocketConnector; import org.eclipse.jetty.util.BlockingArrayQueue; import org.eclipse.jetty.util.SocketAddressResolver; -import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.jupiter.api.Assumptions; @@ -65,7 +62,8 @@ import org.slf4j.LoggerFactory; import static org.eclipse.jetty.http.client.Transport.UNIX_SOCKET; -import static org.junit.jupiter.api.Assumptions.assumeTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TransportScenario { @@ -86,20 +84,10 @@ public TransportScenario(final Transport transport) throws IOException { this.transport = transport; - Path unixSocketTmp; - String tmpProp = System.getProperty("unix.socket.tmp"); - if (StringUtil.isBlank(tmpProp)) - unixSocketTmp = MavenTestingUtils.getTargetPath(); - else - unixSocketTmp = Paths.get(tmpProp); - sockFile = Files.createTempFile(unixSocketTmp, "unix", ".sock"); - if (sockFile.toAbsolutePath().toString().length() > UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH) - { - Files.delete(sockFile); - Path tmp = Paths.get("/tmp"); - assumeTrue(Files.exists(tmp) && Files.isDirectory(tmp)); - sockFile = Files.createTempFile(tmp, "unix", ".sock"); - } + String dir = System.getProperty("jetty.unixdomain.dir"); + assertNotNull(dir); + sockFile = Files.createTempFile(Path.of(dir), "unix_", ".sock"); + assertTrue(sockFile.toAbsolutePath().toString().length() < UnixSocketConnector.MAX_UNIX_SOCKET_PATH_LENGTH, "Unix-Domain path too long"); Files.delete(sockFile); // Disable UNIX_SOCKET due to jnr/jnr-unixsocket#69.