diff --git a/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/jna.mod b/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/jna.mod index c5282e0c547f..c2c9e9139136 100644 --- a/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/jna.mod +++ b/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/jna.mod @@ -5,6 +5,9 @@ https://github.com/java-native-access/jna [files] maven://net.java.dev.jna/jna-jpms/${jna.version}|lib/http3/jna-jpms-${jna.version}.jar +[lib] +lib/http3/jna-jpms-${jna.version}.jar + [ini] jna.version?=@jna.version@ diff --git a/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/quiche.mod b/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/quiche.mod index b27325d75275..cf86d246f4e4 100644 --- a/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/quiche.mod +++ b/jetty-core/jetty-http3/jetty-http3-server/src/main/config/modules/quiche.mod @@ -8,6 +8,9 @@ maven://org.mortbay.jetty.quiche/jetty-quiche-native/${jetty-quiche-native.versi [ini] jetty-quiche-native.version?=@jetty-quiche-native.version@ +[lib] +lib/http3/jetty-quiche-native-${jetty-quiche-native.version}.jar + [license] Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-client-transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/AbstractTest.java b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-client-transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/AbstractTest.java index c280e2ae4164..e00accce5e8e 100644 --- a/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-client-transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/AbstractTest.java +++ b/jetty-ee10/jetty-ee10-tests/jetty-ee10-test-client-transports/src/test/java/org/eclipse/jetty/ee10/test/client/transport/AbstractTest.java @@ -63,6 +63,7 @@ import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(WorkDirExtension.class) @@ -71,6 +72,7 @@ public class AbstractTest public WorkDir workDir; protected final HttpConfiguration httpConfig = new HttpConfiguration(); + protected Path pemDir; protected SslContextFactory.Server sslContextFactoryServer; protected ServerQuicConfiguration serverQuicConfig; protected Server server; @@ -100,6 +102,12 @@ public static Collection transportsWithPushSupport() return transports; } + @BeforeEach + public void prepare() + { + pemDir = workDir.getEmptyPathDir(); + } + @AfterEach public void dispose() { @@ -122,7 +130,8 @@ protected void startServer(Transport transport, HttpServlet servlet) throws Exce protected void prepareServer(Transport transport, HttpServlet servlet) throws Exception { sslContextFactoryServer = newSslContextFactoryServer(); - serverQuicConfig = new ServerQuicConfiguration(sslContextFactoryServer, workDir.getEmptyPathDir()); + Path serverPemDirectory = Files.createDirectories(pemDir.resolve("server")); + serverQuicConfig = new ServerQuicConfiguration(sslContextFactoryServer, serverPemDirectory); if (server == null) server = newServer(); connector = newConnector(transport, server); @@ -262,7 +271,8 @@ protected HttpClientTransport newHttpClientTransport(Transport transport) throws clientConnector.setSelectors(1); SslContextFactory.Client sslContextFactory = newSslContextFactoryClient(); clientConnector.setSslContextFactory(sslContextFactory); - HTTP3Client http3Client = new HTTP3Client(new ClientQuicConfiguration(sslContextFactory, null)); + Path clientPemDirectory = Files.createDirectories(pemDir.resolve("client")); + HTTP3Client http3Client = new HTTP3Client(new ClientQuicConfiguration(sslContextFactory, clientPemDirectory)); yield new HttpClientTransportOverHTTP3(http3Client); } case FCGI -> new HttpClientTransportOverFCGI(1, ""); diff --git a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-client-transports/src/test/java/org/eclipse/jetty/ee9/test/client/transport/AbstractTest.java b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-client-transports/src/test/java/org/eclipse/jetty/ee9/test/client/transport/AbstractTest.java index 216a11d5c7b0..63efe5877d06 100644 --- a/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-client-transports/src/test/java/org/eclipse/jetty/ee9/test/client/transport/AbstractTest.java +++ b/jetty-ee9/jetty-ee9-tests/jetty-ee9-test-client-transports/src/test/java/org/eclipse/jetty/ee9/test/client/transport/AbstractTest.java @@ -67,6 +67,7 @@ import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(WorkDirExtension.class) @@ -75,6 +76,7 @@ public class AbstractTest public WorkDir workDir; protected final HttpConfiguration httpConfig = new HttpConfiguration(); + protected Path pemDir; protected SslContextFactory.Server sslContextFactoryServer; protected ServerQuicConfiguration serverQuicConfig; protected Server server; @@ -104,6 +106,12 @@ public static Collection transportsWithPushSupport() return transports; } + @BeforeEach + public void prepare() + { + pemDir = workDir.getEmptyPathDir(); + } + @AfterEach public void dispose() { @@ -131,7 +139,8 @@ protected void prepareServer(Transport transport, HttpServlet servlet) throws Ex protected void prepareServer(Transport transport, HttpServlet servlet, String path) throws Exception { sslContextFactoryServer = newSslContextFactoryServer(); - serverQuicConfig = new ServerQuicConfiguration(sslContextFactoryServer, workDir.getEmptyPathDir()); + Path serverPemDirectory = Files.createDirectories(pemDir.resolve("server")); + serverQuicConfig = new ServerQuicConfiguration(sslContextFactoryServer, serverPemDirectory); if (server == null) server = newServer(); connector = newConnector(transport, server); @@ -268,7 +277,8 @@ protected HttpClientTransport newHttpClientTransport(Transport transport) throws clientConnector.setSelectors(1); SslContextFactory.Client sslContextFactory = newSslContextFactoryClient(); clientConnector.setSslContextFactory(sslContextFactory); - HTTP3Client http3Client = new HTTP3Client(new ClientQuicConfiguration(sslContextFactory, null)); + Path clientPemDirectory = Files.createDirectories(pemDir.resolve("client")); + HTTP3Client http3Client = new HTTP3Client(new ClientQuicConfiguration(sslContextFactory, clientPemDirectory)); yield new HttpClientTransportOverHTTP3(http3Client); } case FCGI -> new HttpClientTransportOverFCGI(1, "");