JPMS for the 4.0

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/connectors/apache-connector/src/main/java/module-info.java b/connectors/apache-connector/src/main/java/module-info.java
deleted file mode 100644
index 6a03fd1..0000000
--- a/connectors/apache-connector/src/main/java/module-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-module org.glassfish.jersey.apache.connector {
-    requires java.logging;
-
-    requires jakarta.ws.rs;
-
-    requires org.apache.httpcomponents.httpcore;
-    requires org.apache.httpcomponents.httpclient;
-
-    requires org.glassfish.jersey.core.common;
-    requires org.glassfish.jersey.core.client;
-
-    exports org.glassfish.jersey.apache.connector;
-
-    opens org.glassfish.jersey.apache.connector;
-}
\ No newline at end of file
diff --git a/connectors/apache-connector/src/test/java/module-info.java b/connectors/apache-connector/src/test/java/module-info.java
deleted file mode 100644
index 55d7e9d..0000000
--- a/connectors/apache-connector/src/test/java/module-info.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-module org.glassfish.jersey.apache.connector.test {
-    requires java.logging;
-
-    requires jakarta.inject;
-    requires jakarta.ws.rs;
-
-    requires org.apache.httpcomponents.httpclient;
-
-    requires org.glassfish.jersey.core.common;
-    requires org.glassfish.jersey.core.client;
-    requires org.glassfish.jersey.core.server;
-
-    requires org.glassfish.jersey.apache.connector;
-    requires org.glassfish.jersey.tests.framework.core;
-    requires org.glassfish.jersey.tests.framework.provider.grizzly;
-
-    requires org.junit.jupiter.api;
-    requires org.junit.jupiter.engine;
-    requires org.junit.platform.commons;
-    requires org.hamcrest;
-
-    exports org.glassfish.jersey.apache.connector.test to
-            org.junit.platform.commons,
-            org.glassfish.jersey.core.server;
-    opens org.glassfish.jersey.apache.connector.test to
-            org.glassfish.hk2.locator,
-            org.glassfish.hk2.utilities;
-}
\ No newline at end of file
diff --git a/connectors/jetty-connector/pom.xml b/connectors/jetty-connector/pom.xml
index 2cdb267..5924fda 100644
--- a/connectors/jetty-connector/pom.xml
+++ b/connectors/jetty-connector/pom.xml
@@ -41,6 +41,16 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>org.glassfish.jersey.media</groupId>
             <artifactId>jersey-media-jaxb</artifactId>
             <version>${project.version}</version>
diff --git a/connectors/jetty-connector/src/test/java/module-info.java b/connectors/jetty-connector/src/test/java/module-info.java
index bb9eb02..e67eb51 100644
--- a/connectors/jetty-connector/src/test/java/module-info.java
+++ b/connectors/jetty-connector/src/test/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -20,8 +20,8 @@
     requires jakarta.inject;
     requires jakarta.ws.rs;
 
-    requires org.eclipse.jetty.client;
     requires org.eclipse.jetty.server;
+    requires org.eclipse.jetty.client;
     requires org.eclipse.jetty.http;
     requires org.eclipse.jetty.io;
     requires org.eclipse.jetty.util;
diff --git a/connectors/jetty-http2-connector/src/main/java/module-info.java b/connectors/jetty-http2-connector/src/main/java/module-info.java
index 867251b..942d478 100644
--- a/connectors/jetty-http2-connector/src/main/java/module-info.java
+++ b/connectors/jetty-http2-connector/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/connectors/netty-connector/pom.xml b/connectors/netty-connector/pom.xml
index 9b33079..5a40f3a 100644
--- a/connectors/netty-connector/pom.xml
+++ b/connectors/netty-connector/pom.xml
@@ -36,6 +36,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <surefire.coverage.argline>
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
+            --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
             --add-opens java.base/java.lang=org.glassfish.jersey.netty.connector
             --add-opens java.base/java.lang.reflect=org.glassfish.jersey.netty.connector
diff --git a/containers/glassfish/jersey-gf-ejb/src/main/java/module-info.java b/containers/glassfish/jersey-gf-ejb/src/main/java/module-info.java
index b3917b8..36588dd 100644
--- a/containers/glassfish/jersey-gf-ejb/src/main/java/module-info.java
+++ b/containers/glassfish/jersey-gf-ejb/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-module org.glasfish.jersey.gf.ejb {
+module org.glassfish.jersey.gf.ejb {
     requires java.logging;
     requires java.naming;
 
diff --git a/containers/jetty-http2/src/main/java/module-info.java b/containers/jetty-http2/src/main/java/module-info.java
index b8f6be4..1425822 100644
--- a/containers/jetty-http2/src/main/java/module-info.java
+++ b/containers/jetty-http2/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/containers/jetty-http2/src/main/java/org/glassfish/jersey/jetty/http2/JettyHttp2ContainerProvider.java b/containers/jetty-http2/src/main/java/org/glassfish/jersey/jetty/http2/JettyHttp2ContainerProvider.java
index 824e917..6880187 100644
--- a/containers/jetty-http2/src/main/java/org/glassfish/jersey/jetty/http2/JettyHttp2ContainerProvider.java
+++ b/containers/jetty-http2/src/main/java/org/glassfish/jersey/jetty/http2/JettyHttp2ContainerProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/core-client/pom.xml b/core-client/pom.xml
index 1a4ca75..cf4d1a6 100644
--- a/core-client/pom.xml
+++ b/core-client/pom.xml
@@ -33,6 +33,16 @@
 
     <description>Jersey core client implementation</description>
 
+    <properties>
+        <surefire.coverage.argline>
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.io=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
+            --add-modules=ALL-MODULE-PATH
+        </surefire.coverage.argline>
+    </properties>
+
     <build>
         <plugins>
             <plugin>
@@ -58,6 +68,18 @@
                             </compilerArguments>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>default-testCompile</id>
+                        <goals>
+                            <goal>testCompile</goal>
+                        </goals>
+                        <configuration>
+                            <compilerArgs>
+                                <arg>--add-exports</arg>
+                                <arg>org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED</arg>
+                            </compilerArgs>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
             <plugin>
diff --git a/core-common/src/main/java/module-info.java b/core-common/src/main/java/module-info.java
index a1017e3..d7a0f4d 100644
--- a/core-common/src/main/java/module-info.java
+++ b/core-common/src/main/java/module-info.java
@@ -34,7 +34,6 @@
     exports org.glassfish.jersey.internal.config;
     exports org.glassfish.jersey.internal.guava;
     exports org.glassfish.jersey.internal.inject;
-    exports org.glassfish.jersey.internal.jsr166;
     exports org.glassfish.jersey.internal.l10n;
     exports org.glassfish.jersey.internal.sonar;
     exports org.glassfish.jersey.internal.spi;
@@ -54,11 +53,30 @@
     exports org.glassfish.jersey.uri.internal;
 
 
-    exports org.glassfish.jersey.innate to org.glassfish.jersey.container.grizzly2.http,
+    exports org.glassfish.jersey.innate to org.glassfish.jersey.core.client,org.glassfish.jersey.core.server,
+                                           org.glassfish.jersey.container.grizzly2.http,
                                            org.glassfish.jersey.container.servlet.core,
                                            org.glassfish.jersey.container.jetty.http,
                                            org.glassfish.jersey.netty.connector,
                                            org.glassfish.jersey.ext.mp.rest.client;
+    exports org.glassfish.jersey.innate.inject to org.glassfish.jersey.inject.hk2,
+                                                  org.glassfish.jersey.inject.cdi2.se,
+                                                  org.glassfish.jersey.core.client,
+                                                  org.glassfish.jersey.core.server,
+                                                  org.glassfish.jersey.container.grizzly2.http,
+                                                  org.glassfish.jersey.container.servlet.core,
+                                                  org.glassfish.jersey.container.jetty.http,
+                                                  org.glassfish.jersey.media.sse,
+                                                  org.glassfish.jersey.media.jaxb,
+                                                  org.glassfish.jersey.media.moxy,
+                                                  org.glassfish.jersey.media.multipart,
+                                                  org.glassfish.jersey.ext.bean.validation,
+                                                  org.glassfish.jersey.ext.cdi1x,
+                                                  org.glassfish.jersey.ext.cdi1x.transaction,
+                                                  org.glassfish.jersey.ext.entity.filtering,
+                                                  org.glassfish.jersey.ext.mvc,
+                                                  org.glassfish.jersey.gf.ejb,
+                                                  org.glassfish.jersey.security.oauth1.signature;
     exports org.glassfish.jersey.innate.virtual to org.glassfish.jersey.container.grizzly2.http,
                                                    org.glassfish.jersey.container.jetty.http,
                                                    org.glassfish.jersey.netty.connector,
diff --git a/ext/microprofile/mp-config/pom.xml b/ext/microprofile/mp-config/pom.xml
index 4121415..4f3c04c 100644
--- a/ext/microprofile/mp-config/pom.xml
+++ b/ext/microprofile/mp-config/pom.xml
@@ -32,6 +32,7 @@
     <properties>
         <surefire.coverage.argline>
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
+            --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
             --add-modules=ALL-MODULE-PATH
         </surefire.coverage.argline>
diff --git a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
index 9b24444..32df345 100644
--- a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
+++ b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
@@ -1,9 +1,5 @@
 /*
-<<<<<<<< HEAD:incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
- * Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
-========
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
->>>>>>>> origin/3.1.JPMS:tests/integration/jersey-780/src/main/java/module-info.java
+ * Copyright (c) 2024, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -18,7 +14,6 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-<<<<<<<< HEAD:incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
 package org.glassfish.jersey.inject.weld;
 
 import org.glassfish.jersey.internal.inject.Injections;
@@ -32,8 +27,3 @@
         injectionManager = Injections.createInjectionManager(RuntimeType.CLIENT);
     }
 }
-========
-module org.glassfish.jersey.tests.integration.jersey_780 {
-    requires jakarta.ws.rs;
-}
->>>>>>>> origin/3.1.JPMS:tests/integration/jersey-780/src/main/java/module-info.java
diff --git a/incubator/kryo/pom.xml b/incubator/kryo/pom.xml
index 8e83c1f..baa8a3b 100644
--- a/incubator/kryo/pom.xml
+++ b/incubator/kryo/pom.xml
@@ -37,6 +37,7 @@
     <properties>
         <surefire.coverage.argline>
             --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
             --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
             --add-reads org.glassfish.jersey.incubator.media.kryo=org.glassfish.jersey.core.server
             --add-reads org.glassfish.jersey.incubator.media.kryo=org.glassfish.jersey.core.client
diff --git a/media/jaxb/pom.xml b/media/jaxb/pom.xml
index 2665950..16c9c93 100644
--- a/media/jaxb/pom.xml
+++ b/media/jaxb/pom.xml
@@ -30,6 +30,12 @@
     <packaging>jar</packaging>
     <name>jersey-media-jaxb</name>
 
+    <properties>
+        <surefire.security.argline>
+            --add-reads org.glassfish.jersey.media.jaxb=org.glassfish.jersey.inject.hk2
+        </surefire.security.argline>
+    </properties>
+
     <description>
         JAX-RS features based upon JAX-B.
     </description>
diff --git a/media/json-binding/pom.xml b/media/json-binding/pom.xml
index d314af0..e2681e5 100644
--- a/media/json-binding/pom.xml
+++ b/media/json-binding/pom.xml
@@ -118,6 +118,9 @@
 
     <properties>
 	<!-- JPMS relatest test config -->
-        <surefire.coverage.argline>--add-modules=ALL-MODULE-PATH</surefire.coverage.argline>
+        <surefire.coverage.argline>
+            --add-reads org.glassfish.jersey.media.jsonb=org.glassfish.jersey.inject.hk2
+            --add-modules=ALL-MODULE-PATH
+        </surefire.coverage.argline>
     </properties>
 </project>
diff --git a/media/multipart/pom.xml b/media/multipart/pom.xml
index 334fd13..5393fc3 100644
--- a/media/multipart/pom.xml
+++ b/media/multipart/pom.xml
@@ -37,6 +37,7 @@
     <properties>
         <surefire.coverage.argline>
             --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
             --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
             --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.io=ALL-UNNAMED
             --add-exports org.glassfish.jersey.core.client/org.glassfish.jersey.client.innate=ALL-UNNAMED
diff --git a/media/multipart/src/main/java/module-info.java b/media/multipart/src/main/java/module-info.java
index e277cbf..c131e16 100644
--- a/media/multipart/src/main/java/module-info.java
+++ b/media/multipart/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,8 +21,6 @@
     requires jakarta.ws.rs;
     requires jakarta.inject;
 
-    requires jakarta.xml.bind;
-
     requires org.jvnet.mimepull;
 
     requires org.glassfish.jersey.core.server;
diff --git a/media/multipart/src/test/java/org/glassfish/jersey/media/multipart/internal/MultiPartHeaderModificationTest.java b/media/multipart/src/test/java/org/glassfish/jersey/media/multipart/internal/MultiPartHeaderModificationTest.java
index e8a4e77..140b916 100644
--- a/media/multipart/src/test/java/org/glassfish/jersey/media/multipart/internal/MultiPartHeaderModificationTest.java
+++ b/media/multipart/src/test/java/org/glassfish/jersey/media/multipart/internal/MultiPartHeaderModificationTest.java
@@ -36,6 +36,7 @@
 import org.glassfish.jersey.client.HttpUrlConnectorProvider;
 import org.glassfish.jersey.client.spi.ConnectorProvider;
 import org.glassfish.jersey.grizzly.connector.GrizzlyConnectorProvider;
+import org.glassfish.jersey.jetty.connector.JettyConnectorProvider;
 import org.glassfish.jersey.media.multipart.MultiPart;
 import org.glassfish.jersey.test.TestProperties;
 import org.glassfish.jersey.test.spi.TestHelper;
diff --git a/media/sse/pom.xml b/media/sse/pom.xml
index d9e46d5..97db1e1 100644
--- a/media/sse/pom.xml
+++ b/media/sse/pom.xml
@@ -96,6 +96,9 @@
         <surefire.coverage.argline>
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate=ALL-UNNAMED
             --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.virtual=ALL-UNNAMED
+            --add-reads org.glassfish.jersey.media.sse=org.glassfish.jersey.inject.hk2
+            --add-opens org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
+            --add-exports org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED
             --add-modules=ALL-MODULE-PATH
         </surefire.coverage.argline>
     </properties>
diff --git a/pom.xml b/pom.xml
index 5ca62fc..9dba7fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -943,20 +943,18 @@
                                         <release>${java.version}</release>
                                     </configuration>
                                 </execution>
-                                <!--<execution>
-                                    <id>base-compile</id>
+                                <execution>
+                                    <id>default-testCompile</id>
                                     <goals>
-                                        <goal>compile</goal>
+                                        <goal>testCompile</goal>
                                     </goals>
-                                    &lt;!&ndash; recompile everything for target VM except the module-info.java &ndash;&gt;
                                     <configuration>
-                                        <excludes>
-                                            <exclude>module-info.java</exclude>
-                                        </excludes>
-                                       &lt;!&ndash; <source>1.8</source>
-                                        <target>1.8</target>&ndash;&gt;
+                                        <compilerArgs>
+                                            <arg>--add-exports</arg>
+                                            <arg>org.glassfish.jersey.core.common/org.glassfish.jersey.innate.inject=ALL-UNNAMED</arg>
+                                        </compilerArgs>
                                     </configuration>
-                                </execution>-->
+                                </execution>
                             </executions>
                         </plugin>
                     </plugins>
@@ -1930,7 +1928,7 @@
             <dependency>
                 <groupId>org.jboss.weld</groupId>
                 <artifactId>weld-api</artifactId>
-                <version>${weld.version}</version>
+                <version>${weld.api.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.jboss.weld.se</groupId>
@@ -2202,7 +2200,7 @@
         <!--versions, extracted here due to maven-enforcer-plugin -->
         <!--        <commons.codec.version>1.15</commons.codec.version>-->
         <com.uber.jaeger.version>0.27.0</com.uber.jaeger.version>
-        <org.codehaus.gmavenplus.version>3.0.2</org.codehaus.gmavenplus.version>
+        <org.codehaus.gmavenplus.version>4.1.1</org.codehaus.gmavenplus.version>
         <!-- end of versions extracted here due to maven-enforcer-plugin -->
 
         <!-- micrometer -->
@@ -2261,7 +2259,8 @@
         <testng6.version>6.14.3</testng6.version>
         <thymeleaf.version>3.1.2.RELEASE</thymeleaf.version>
         <!-- Jakartified, eligible for CQ -->
-        <weld.version>6.0.0.Beta4</weld.version>
+        <weld.api.version>6.0.Final</weld.api.version>
+        <weld.version>6.0.1.Final</weld.version>
         <validation.impl.version>8.0.1.Final</validation.impl.version>
         <!-- END of Jakartified, eligible for CQ -->
         <wiremock.jetty9.version>2.27.2</wiremock.jetty9.version>
diff --git a/test-framework/maven/container-runner-maven-plugin/pom.xml b/test-framework/maven/container-runner-maven-plugin/pom.xml
index 9cc0957..1dab9c0 100644
--- a/test-framework/maven/container-runner-maven-plugin/pom.xml
+++ b/test-framework/maven/container-runner-maven-plugin/pom.xml
@@ -36,10 +36,10 @@
     </description>
 
     <properties>
-        <groovy-eclipse-compiler.version>3.7.0</groovy-eclipse-compiler.version>
-        <groovy-eclipse-batch.version>3.0.8-01</groovy-eclipse-batch.version>
-        <maven.version>3.9.2</maven.version>
-        <maven-plugin.version>3.9.0</maven-plugin.version>
+        <groovy-eclipse-compiler.version>3.9.0</groovy-eclipse-compiler.version>
+        <groovy-eclipse-batch.version>4.0.26-01</groovy-eclipse-batch.version>
+        <maven.version>3.9.9</maven.version>
+        <maven-plugin.version>3.15.1</maven-plugin.version>
     </properties>
 
     <dependencies>
@@ -284,6 +284,13 @@
         </pluginManagement>
     </build>
 
+    <pluginRepositories>
+        <pluginRepository>
+            <id>groovy-plugins-release</id>
+            <url>https://groovy.jfrog.io/artifactory/plugins-release</url>
+        </pluginRepository>
+    </pluginRepositories>
+
     <profiles>
         <profile>
             <id>doesnt-work-on-windows</id>
diff --git a/test-framework/providers/jetty-http2/src/main/java/module-info.java b/test-framework/providers/jetty-http2/src/main/java/module-info.java
index 80b26bd..e38362e 100644
--- a/test-framework/providers/jetty-http2/src/main/java/module-info.java
+++ b/test-framework/providers/jetty-http2/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/test-framework/providers/jetty/pom.xml b/test-framework/providers/jetty/pom.xml
index e5cd888..34c0d04 100644
--- a/test-framework/providers/jetty/pom.xml
+++ b/test-framework/providers/jetty/pom.xml
@@ -47,6 +47,11 @@
             <artifactId>slf4j-api</artifactId>
             <version>${slf4j.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.junit.platform</groupId>
+            <artifactId>junit-platform-engine</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/test-framework/providers/jetty/src/main/java/module-info.java b/test-framework/providers/jetty/src/main/java/module-info.java
index 7d43bf5..693764c 100644
--- a/test-framework/providers/jetty/src/main/java/module-info.java
+++ b/test-framework/providers/jetty/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/test-framework/providers/jetty/src/test/java/module-info.java b/test-framework/providers/jetty/src/test/java/module-info.java
index a01ea27..43485ec 100644
--- a/test-framework/providers/jetty/src/test/java/module-info.java
+++ b/test-framework/providers/jetty/src/test/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -36,5 +36,6 @@
 
     requires org.junit.jupiter.api;
     requires org.junit.jupiter.engine;
+    requires org.junit.platform.engine;
     requires org.hamcrest;
 }
\ No newline at end of file
diff --git a/tests/e2e-tls/src/test/java/org/glassfish/jersey/tests/e2e/tls/SniTest.java b/tests/e2e-tls/src/test/java/org/glassfish/jersey/tests/e2e/tls/SniTest.java
index 03ee91f..7ac593f 100644
--- a/tests/e2e-tls/src/test/java/org/glassfish/jersey/tests/e2e/tls/SniTest.java
+++ b/tests/e2e-tls/src/test/java/org/glassfish/jersey/tests/e2e/tls/SniTest.java
@@ -17,13 +17,11 @@
 package org.glassfish.jersey.tests.e2e.tls;
 
 import jakarta.ws.rs.client.Invocation;
-import org.glassfish.jersey.apache.connector.ApacheConnectorProvider;
 import org.glassfish.jersey.apache5.connector.Apache5ConnectorProvider;
 import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.client.ClientProperties;
 import org.glassfish.jersey.client.HttpUrlConnectorProvider;
 import org.glassfish.jersey.client.spi.ConnectorProvider;
-import org.glassfish.jersey.internal.util.JdkVersion;
 import org.glassfish.jersey.jdk.connector.JdkConnectorProvider;
 import org.glassfish.jersey.jnh.connector.JavaNetHttpConnectorProvider;
 import org.glassfish.jersey.netty.connector.NettyConnectorProvider;
@@ -49,7 +47,6 @@
 public class SniTest {
     private static final int PORT = 8443;
     private static final String LOCALHOST = "127.0.0.1";
-    private static JdkVersion jdkVersion = JdkVersion.getJdkVersion();
 
     static {
 // Debug
@@ -60,17 +57,13 @@
     }
 
     public static ConnectorProvider[] getConnectors() {
-        ConnectorProvider[] providers = new ConnectorProvider[jdkVersion.getMajor() < 24 ? 6 : 5];
-        providers[0] = new NettyConnectorProvider();
-        providers[1] = new ApacheConnectorProvider();
-        providers[2] = new Apache5ConnectorProvider();
-        providers[3] = new JdkConnectorProvider();
-        providers[4] = new HttpUrlConnectorProvider();
-        if (jdkVersion.getMajor() < 24) {
-            /* The trick with 127.0.0.1 instead of the host in uri to get the SNI does not work for JDK 24 any longer */
-            providers[5] = new JavaNetHttpConnectorProvider();
-        }
-        return providers;
+        return new ConnectorProvider[] {
+                new NettyConnectorProvider(),
+                new Apache5ConnectorProvider(),
+                new JdkConnectorProvider(),
+                new HttpUrlConnectorProvider(),
+                new JavaNetHttpConnectorProvider()
+        };
     }
 
     @ParameterizedTest
@@ -127,7 +120,7 @@
                 .path("host")
                 .request();
         if (!JavaNetHttpConnectorProvider.class.isInstance(provider)) {
-            builder = builder.header(HttpHeaders.HOST, hostName + ":" + PORT);
+            builder = builder.header(HttpHeaders.HOST, hostName + ":8080");
         }
         try (Response r = builder.get()) {
             // empty
diff --git a/tests/integration/cdi-integration/cdi-beanvalidation-webapp/src/main/java/module-info.java b/tests/integration/cdi-integration/cdi-beanvalidation-webapp/src/main/java/module-info.java
index 8f85ec0..23445df 100644
--- a/tests/integration/cdi-integration/cdi-beanvalidation-webapp/src/main/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-beanvalidation-webapp/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -26,6 +26,7 @@
 
     requires org.glassfish.jersey.core.server;
     requires org.glassfish.jersey.core.common;
+    requires org.glassfish.jersey.inject.hk2;
     requires org.glassfish.jersey.ext.cdi1x;
 
     exports org.glassfish.jersey.tests.cdi.bv;
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/main/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/main/java/module-info.java
index 0681a22..c89f60b 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/main/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
     requires org.glassfish.jersey.ext.cdi1x;
 
     opens org.glassfish.jersey.tests.cdi.resources;
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/test/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/test/java/module-info.java
index 0ff30f8..6b9c6bf 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/test/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-cfg-webapp/src/test/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,6 +21,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 
     requires org.junit.jupiter.api;
     requires org.junit.jupiter.params;
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/main/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/main/java/module-info.java
index d332511..7e80de2 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/main/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 
     opens org.glassfish.jersey.tests.cdi.resources;
 }
\ No newline at end of file
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/test/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/test/java/module-info.java
index 7c7ee83..efa5d3d 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/test/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-custom-hk2-banned-webapp/src/test/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,6 +21,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 
     requires org.junit.jupiter.api;
     requires org.hamcrest;
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/main/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/main/java/module-info.java
index 0530f05..0ebdca9 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/main/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
     requires org.glassfish.jersey.ext.cdi1x;
 
     opens org.glassfish.jersey.tests.cdi.resources;
diff --git a/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/test/java/module-info.java b/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/test/java/module-info.java
index 429d5e2..555fcca 100644
--- a/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/test/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-with-jersey-injection-webapp/src/test/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,6 +21,7 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 
     requires org.glassfish.jersey.tests.framework.core;
 
diff --git a/tests/integration/jersey-1964/src/main/java/module-info.java b/tests/integration/jersey-1964/src/main/java/module-info.java
deleted file mode 100644
index a7b3d5d..0000000
--- a/tests/integration/jersey-1964/src/main/java/module-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-module org.glassfish.jersey.tests.integration.jersey_1964 {
-    requires jakarta.ws.rs;
-    requires jakarta.xml.bind;
-    requires org.glassfish.jersey.core.server;
-}
\ No newline at end of file
diff --git a/tests/integration/jersey-2167/src/main/java/module-info.java b/tests/integration/jersey-2167/src/main/java/module-info.txt
similarity index 87%
rename from tests/integration/jersey-2167/src/main/java/module-info.java
rename to tests/integration/jersey-2167/src/main/java/module-info.txt
index 1237902..5e49c90 100644
--- a/tests/integration/jersey-2167/src/main/java/module-info.java
+++ b/tests/integration/jersey-2167/src/main/java/module-info.txt
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,4 +23,5 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 }
\ No newline at end of file
diff --git a/tests/integration/jersey-2335/src/main/java/module-info.java b/tests/integration/jersey-2335/src/main/java/module-info.txt
similarity index 91%
rename from tests/integration/jersey-2335/src/main/java/module-info.java
rename to tests/integration/jersey-2335/src/main/java/module-info.txt
index d38396c..902ee54 100644
--- a/tests/integration/jersey-2335/src/main/java/module-info.java
+++ b/tests/integration/jersey-2335/src/main/java/module-info.txt
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
diff --git a/tests/integration/jersey-2612/src/main/java/module-info.java b/tests/integration/jersey-2612/src/main/java/module-info.java
index dd73244..9e3eaf7 100644
--- a/tests/integration/jersey-2612/src/main/java/module-info.java
+++ b/tests/integration/jersey-2612/src/main/java/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,4 +21,5 @@
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.inject.hk2;
 }
\ No newline at end of file
diff --git a/tests/integration/jersey-780/src/main/java/module-info.java b/tests/integration/jersey-780/src/main/java/module-info.java
deleted file mode 100644
index 9b24444..0000000
--- a/tests/integration/jersey-780/src/main/java/module-info.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-<<<<<<<< HEAD:incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
- * Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
-========
- * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
->>>>>>>> origin/3.1.JPMS:tests/integration/jersey-780/src/main/java/module-info.java
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-<<<<<<<< HEAD:incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/ClientTestParent.java
-package org.glassfish.jersey.inject.weld;
-
-import org.glassfish.jersey.internal.inject.Injections;
-import org.junit.jupiter.api.BeforeEach;
-
-import jakarta.ws.rs.RuntimeType;
-
-public class ClientTestParent extends TestParent {
-    @BeforeEach
-    public void init() {
-        injectionManager = Injections.createInjectionManager(RuntimeType.CLIENT);
-    }
-}
-========
-module org.glassfish.jersey.tests.integration.jersey_780 {
-    requires jakarta.ws.rs;
-}
->>>>>>>> origin/3.1.JPMS:tests/integration/jersey-780/src/main/java/module-info.java
diff --git a/tests/integration/jersey-780/src/test/java/module-info.java b/tests/integration/jersey-780/src/test/java/module-info.java
deleted file mode 100644
index 1d39d18..0000000
--- a/tests/integration/jersey-780/src/test/java/module-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-module org.glassfish.jersey.tests.integration.jersey_780 {
-    requires jakarta.ws.rs;
-//    requires jakarta.persistence;
-
-    requires org.glassfish.jersey.core.server;
-    requires org.glassfish.jersey.tests.framework.core;
-    requires org.glassfish.jersey.tests.framework.provider.external;
-
-    requires org.junit.jupiter.api;
-
-    exports org.glassfish.jersey.tests.integration.jersey780;
-}
\ No newline at end of file
diff --git a/tests/integration/microprofile/rest-client-tck3/pom.xml b/tests/integration/microprofile/rest-client-tck3/pom.xml
index c98a715..4dab56c 100644
--- a/tests/integration/microprofile/rest-client-tck3/pom.xml
+++ b/tests/integration/microprofile/rest-client-tck3/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>microprofile-integration-project</artifactId>
         <groupId>org.glassfish.jersey.tests.integration.microprofile</groupId>
-        <version>3.5.99-SNAPSHOT</version>
+        <version>4.0.99-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -167,7 +167,7 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.jersey.connectors</groupId>
-            <artifactId>jersey-apache-connector</artifactId>
+            <artifactId>jersey-apache5-connector</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>