JPMS: adjustments

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
index 28cfa01..6a03fd1 100644
--- a/connectors/apache-connector/src/main/java/module-info.java
+++ b/connectors/apache-connector/src/main/java/module-info.java
@@ -19,8 +19,8 @@
 
     requires jakarta.ws.rs;
 
-    requires transitive org.apache.httpcomponents.httpcore;
-    requires transitive org.apache.httpcomponents.httpclient;
+    requires org.apache.httpcomponents.httpcore;
+    requires org.apache.httpcomponents.httpclient;
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.client;
diff --git a/connectors/jdk-connector/src/main/java/module-info.java b/connectors/jdk-connector/src/main/java/module-info.java
index 23edf00..2ac98aa 100644
--- a/connectors/jdk-connector/src/main/java/module-info.java
+++ b/connectors/jdk-connector/src/main/java/module-info.java
@@ -20,6 +20,8 @@
     requires jakarta.ws.rs;
     requires static jakarta.activation;
 
+    requires osgi.resource.locator;
+
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.client;
 
diff --git a/connectors/jetty-connector/src/main/java/module-info.java b/connectors/jetty-connector/src/main/java/module-info.java
index d0396e5..1c9c76f 100644
--- a/connectors/jetty-connector/src/main/java/module-info.java
+++ b/connectors/jetty-connector/src/main/java/module-info.java
@@ -19,10 +19,10 @@
 
     requires jakarta.ws.rs;
 
-    requires transitive org.eclipse.jetty.client;
-    requires transitive org.eclipse.jetty.http;
-    requires transitive org.eclipse.jetty.io;
-    requires transitive org.eclipse.jetty.util;
+    requires org.eclipse.jetty.client;
+    requires org.eclipse.jetty.http;
+    requires org.eclipse.jetty.io;
+    requires org.eclipse.jetty.util;
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.client;
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 bdfd515..78ea32b 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
@@ -32,6 +32,7 @@
     requires org.glassfish.hk2.api;
 
     requires org.glassfish.jersey.core.common;
+    requires org.glassfish.jersey.core.server;
     requires org.glassfish.jersey.core.client;
     requires org.glassfish.jersey.ext.cdi1x;
     requires org.glassfish.jersey.inject.hk2;
diff --git a/containers/grizzly2-http/src/main/java/module-info.java b/containers/grizzly2-http/src/main/java/module-info.java
index f134f4e..a8b0f4d 100644
--- a/containers/grizzly2-http/src/main/java/module-info.java
+++ b/containers/grizzly2-http/src/main/java/module-info.java
@@ -15,11 +15,11 @@
  */
 
 module org.glassfish.jersey.container.grizzly2.http {
-    requires transitive java.logging;
-    requires transitive java.net.http;
+    requires java.logging;
+    requires java.net.http;
 
-    requires transitive jakarta.ws.rs;
-    requires transitive jakarta.inject;
+    requires jakarta.ws.rs;
+    requires jakarta.inject;
     requires static jakarta.xml.bind;
 
     requires grizzly.framework;
diff --git a/containers/grizzly2-http/src/test/java/module-info.java b/containers/grizzly2-http/src/test/java/module-info.java
index d6b5721..fbad5af 100644
--- a/containers/grizzly2-http/src/test/java/module-info.java
+++ b/containers/grizzly2-http/src/test/java/module-info.java
@@ -19,6 +19,9 @@
     requires java.net.http;
     requires java.logging;
 
+    requires jakarta.inject;
+    requires jakarta.ws.rs;
+
     requires org.eclipse.jetty.http2.client;
     requires org.eclipse.jetty.http2.http.client.transport;
 
diff --git a/containers/grizzly2-servlet/src/main/java/module-info.java b/containers/grizzly2-servlet/src/main/java/module-info.java
index 005b3eb..8a426c8 100644
--- a/containers/grizzly2-servlet/src/main/java/module-info.java
+++ b/containers/grizzly2-servlet/src/main/java/module-info.java
@@ -16,7 +16,7 @@
 
 module org.glassfish.jersey.container.grizzly2.servlet {
     requires jakarta.ws.rs;
-    requires transitive jakarta.servlet;
+    requires jakarta.servlet;
 
     requires grizzly.http.servlet;
     requires grizzly.http.server;
diff --git a/containers/jersey-servlet-core/pom.xml b/containers/jersey-servlet-core/pom.xml
index 4725255..5b356c2 100644
--- a/containers/jersey-servlet-core/pom.xml
+++ b/containers/jersey-servlet-core/pom.xml
@@ -82,5 +82,11 @@
              </plugin>
          </plugins>
     </build>
+    <properties>
+        <surefire.coverage.argline>
+            --add-reads org.glassfish.jersey.container.servlet.core=ALL-UNNAMED
+            --add-modules=ALL-MODULE-PATH
+        </surefire.coverage.argline>
+    </properties>
 
 </project>
diff --git a/containers/jersey-servlet-core/src/main/java/module-info.java b/containers/jersey-servlet-core/src/main/java/module-info.java
index 8c3cd04..3676462 100644
--- a/containers/jersey-servlet-core/src/main/java/module-info.java
+++ b/containers/jersey-servlet-core/src/main/java/module-info.java
@@ -14,14 +14,6 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-import org.glassfish.jersey.servlet.internal.spi.ExtendedServletContainerProvider;
-import org.glassfish.jersey.servlet.internal.spi.RequestContextProvider;
-import org.glassfish.jersey.servlet.internal.spi.RequestScopedInitializerProvider;
-import org.glassfish.jersey.servlet.internal.spi.ServletContainerProvider;
-import org.glassfish.jersey.servlet.spi.AsyncContextDelegate;
-import org.glassfish.jersey.servlet.spi.AsyncContextDelegateProvider;
-import org.glassfish.jersey.servlet.spi.FilterUrlMappingsProvider;
-
 module org.glassfish.jersey.container.servlet.core {
     requires java.logging;
     requires java.naming;
@@ -29,7 +21,9 @@
     requires jakarta.ws.rs;
     requires jakarta.inject;
     requires jakarta.persistence;
-    requires static jakarta.servlet;
+    requires jakarta.servlet;
+
+    requires osgi.resource.locator;
 
     requires org.glassfish.jersey.core.common;
     requires org.glassfish.jersey.core.server;
@@ -41,12 +35,12 @@
 
     opens org.glassfish.jersey.servlet;
 
-    uses AsyncContextDelegate;
-    uses AsyncContextDelegateProvider;
-    uses FilterUrlMappingsProvider;
+    uses org.glassfish.jersey.servlet.spi.AsyncContextDelegate;
+    uses org.glassfish.jersey.servlet.spi.AsyncContextDelegateProvider;
+    uses org.glassfish.jersey.servlet.spi.FilterUrlMappingsProvider;
 
-    uses ExtendedServletContainerProvider;
-    uses RequestContextProvider;
-    uses RequestScopedInitializerProvider;
-    uses ServletContainerProvider;
+    uses org.glassfish.jersey.servlet.internal.spi.ExtendedServletContainerProvider;
+    uses org.glassfish.jersey.servlet.internal.spi.RequestContextProvider;
+    uses org.glassfish.jersey.servlet.internal.spi.RequestScopedInitializerProvider;
+    uses org.glassfish.jersey.servlet.internal.spi.ServletContainerProvider;
 }
\ No newline at end of file
diff --git a/core-client/src/main/java/module-info.java b/core-client/src/main/java/module-info.java
index f113f78..a80a87e 100644
--- a/core-client/src/main/java/module-info.java
+++ b/core-client/src/main/java/module-info.java
@@ -14,16 +14,11 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-import org.glassfish.jersey.client.spi.AsyncConnectorCallback;
-import org.glassfish.jersey.client.spi.ConnectorProvider;
-import org.glassfish.jersey.client.spi.DefaultSslContextProvider;
-import org.glassfish.jersey.client.spi.InvocationBuilderListener;
-import org.glassfish.jersey.client.spi.PostInvocationInterceptor;
-import org.glassfish.jersey.client.spi.PreInvocationInterceptor;
-
 module org.glassfish.jersey.core.client {
     requires jakarta.annotation;
     requires jakarta.inject;
+    requires jakarta.ws.rs;
+
     requires java.logging;
 
     requires org.glassfish.jersey.core.common;
@@ -44,12 +39,12 @@
     opens org.glassfish.jersey.client.internal;
     opens org.glassfish.jersey.client.internal.jdkconnector;
 
-    uses AsyncConnectorCallback;
-    uses ConnectorProvider;
-    uses DefaultSslContextProvider;
-    uses InvocationBuilderListener;
-    uses PostInvocationInterceptor;
-    uses PreInvocationInterceptor;
+    uses org.glassfish.jersey.client.spi.AsyncConnectorCallback;
+    uses org.glassfish.jersey.client.spi.ConnectorProvider;
+    uses org.glassfish.jersey.client.spi.DefaultSslContextProvider;
+    uses org.glassfish.jersey.client.spi.InvocationBuilderListener;
+    uses org.glassfish.jersey.client.spi.PostInvocationInterceptor;
+    uses org.glassfish.jersey.client.spi.PreInvocationInterceptor;
 
     provides jakarta.ws.rs.client.ClientBuilder
             with org.glassfish.jersey.client.JerseyClientBuilder;
diff --git a/core-common/pom.xml b/core-common/pom.xml
index 4c53a67..2c0bc06 100644
--- a/core-common/pom.xml
+++ b/core-common/pom.xml
@@ -303,6 +303,10 @@
         <java8.sourceDirectory>${project.basedir}/src/main/java8</java8.sourceDirectory>
         <java9.build.outputDirectory>${project.build.directory}/classes-java9</java9.build.outputDirectory>
         <java9.sourceDirectory>${project.basedir}/src/main/java9</java9.sourceDirectory>
+        <surefire.coverage.argline>
+            --add-reads org.glassfish.jersey.core.common=ALL-UNNAMED
+            --add-modules=ALL-MODULE-PATH
+        </surefire.coverage.argline>
     </properties>
 
 </project>
diff --git a/core-common/src/main/java/module-info.java b/core-common/src/main/java/module-info.java
index ad2bfef..0e58fb0 100644
--- a/core-common/src/main/java/module-info.java
+++ b/core-common/src/main/java/module-info.java
@@ -15,8 +15,8 @@
  */
 
 module org.glassfish.jersey.core.common {
-    requires transitive jakarta.ws.rs;
-    requires transitive jakarta.inject;
+    requires jakarta.ws.rs;
+    requires jakarta.inject;
     requires static jakarta.xml.bind;
     requires static jakarta.activation;
     requires jakarta.annotation;
@@ -25,7 +25,7 @@
 
     // Filename-based auto-modules
     requires static org.osgi.core;
-    requires osgi.resource.locator;
+    requires static osgi.resource.locator;
 
     // Exports rather all, which corresponds to previous state without module-info
     exports org.glassfish.jersey;
diff --git a/core-server/src/main/java/module-info.java b/core-server/src/main/java/module-info.java
index 089ae7f..0f9ce53 100644
--- a/core-server/src/main/java/module-info.java
+++ b/core-server/src/main/java/module-info.java
@@ -15,7 +15,7 @@
  */
 
 module org.glassfish.jersey.core.server {
-    requires transitive jakarta.ws.rs;
+    requires jakarta.ws.rs;
     requires static jakarta.xml.bind;
     requires java.logging;
     requires jakarta.annotation;
diff --git a/ext/bean-validation/src/main/java/module-info.java b/ext/bean-validation/src/main/java/module-info.java
index 4e5f923..85c012c 100644
--- a/ext/bean-validation/src/main/java/module-info.java
+++ b/ext/bean-validation/src/main/java/module-info.java
@@ -19,6 +19,7 @@
     requires java.logging;
 
     requires jakarta.annotation;
+    requires jakarta.inject;
     requires jakarta.validation;
     requires jakarta.ws.rs;
     requires static jakarta.xml.bind;
diff --git a/ext/cdi/jersey-cdi1x/src/main/java/module-info.java b/ext/cdi/jersey-cdi1x/src/main/java/module-info.java
index 1eed93f..1716abd 100644
--- a/ext/cdi/jersey-cdi1x/src/main/java/module-info.java
+++ b/ext/cdi/jersey-cdi1x/src/main/java/module-info.java
@@ -14,34 +14,30 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-import org.glassfish.jersey.ext.cdi1x.internal.spi.BeanManagerProvider;
-import org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionManagerInjectedTarget;
-import org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionManagerStore;
-import org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionTargetListener;
-import org.glassfish.jersey.ext.cdi1x.spi.Hk2CustomBoundTypesProvider;
-
 module org.glassfish.jersey.ext.cdi1x {
 
     requires java.naming;
     requires java.logging;
 
     requires jakarta.cdi;
+    requires jakarta.inject;
     requires jakarta.annotation;
+    requires jakarta.ws.rs;
 
     requires org.glassfish.hk2.api;
 
-    requires transitive org.glassfish.jersey.core.server;
-    requires transitive org.glassfish.jersey.core.common;
-    requires transitive org.glassfish.jersey.inject.hk2;
+    requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.core.common;
+    requires org.glassfish.jersey.inject.hk2;
 
     exports org.glassfish.jersey.ext.cdi1x.internal;
     exports org.glassfish.jersey.ext.cdi1x.internal.spi;
     exports org.glassfish.jersey.ext.cdi1x.spi;
     opens org.glassfish.jersey.ext.cdi1x.internal;
 
-    uses Hk2CustomBoundTypesProvider;
-    uses BeanManagerProvider;
-    uses InjectionManagerInjectedTarget;
-    uses InjectionManagerStore;
-    uses InjectionTargetListener;
+    uses org.glassfish.jersey.ext.cdi1x.spi.Hk2CustomBoundTypesProvider;
+    uses org.glassfish.jersey.ext.cdi1x.internal.spi.BeanManagerProvider;
+    uses org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionManagerInjectedTarget;
+    uses org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionManagerStore;
+    uses org.glassfish.jersey.ext.cdi1x.internal.spi.InjectionTargetListener;
 }
\ No newline at end of file
diff --git a/ext/entity-filtering/src/main/java/module-info.java b/ext/entity-filtering/src/main/java/module-info.java
index 18a9326..1e20ed2 100644
--- a/ext/entity-filtering/src/main/java/module-info.java
+++ b/ext/entity-filtering/src/main/java/module-info.java
@@ -14,19 +14,6 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-import org.glassfish.jersey.message.filtering.spi.AbstractEntityProcessor;
-import org.glassfish.jersey.message.filtering.spi.AbstractObjectProvider;
-import org.glassfish.jersey.message.filtering.spi.EntityGraph;
-import org.glassfish.jersey.message.filtering.spi.EntityGraphProvider;
-import org.glassfish.jersey.message.filtering.spi.EntityInspector;
-import org.glassfish.jersey.message.filtering.spi.EntityProcessor;
-import org.glassfish.jersey.message.filtering.spi.EntityProcessorContext;
-import org.glassfish.jersey.message.filtering.spi.ObjectGraph;
-import org.glassfish.jersey.message.filtering.spi.ObjectGraphTransformer;
-import org.glassfish.jersey.message.filtering.spi.ObjectProvider;
-import org.glassfish.jersey.message.filtering.spi.ScopeProvider;
-import org.glassfish.jersey.message.filtering.spi.ScopeResolver;
-
 module org.glassfish.jersey.ext.entity.filtering {
     requires java.logging;
 
@@ -41,17 +28,17 @@
     exports org.glassfish.jersey.message.filtering;
     exports org.glassfish.jersey.message.filtering.spi;
 
-    uses AbstractEntityProcessor;
-    uses AbstractObjectProvider;
-    uses EntityGraph;
-    uses EntityGraphProvider;
-    uses EntityInspector;
-    uses EntityProcessor;
-    uses EntityProcessorContext;
-    uses ObjectGraph;
-    uses ObjectGraphTransformer;
-    uses ObjectProvider;
-    uses ScopeProvider;
-    uses ScopeResolver;
+    uses org.glassfish.jersey.message.filtering.spi.AbstractEntityProcessor;
+    uses org.glassfish.jersey.message.filtering.spi.AbstractObjectProvider;
+    uses org.glassfish.jersey.message.filtering.spi.EntityGraph;
+    uses org.glassfish.jersey.message.filtering.spi.EntityGraphProvider;
+    uses org.glassfish.jersey.message.filtering.spi.EntityInspector;
+    uses org.glassfish.jersey.message.filtering.spi.EntityProcessor;
+    uses org.glassfish.jersey.message.filtering.spi.EntityProcessorContext;
+    uses org.glassfish.jersey.message.filtering.spi.ObjectGraph;
+    uses org.glassfish.jersey.message.filtering.spi.ObjectGraphTransformer;
+    uses org.glassfish.jersey.message.filtering.spi.ObjectProvider;
+    uses org.glassfish.jersey.message.filtering.spi.ScopeProvider;
+    uses org.glassfish.jersey.message.filtering.spi.ScopeResolver;
 
 }
\ No newline at end of file
diff --git a/ext/mvc/src/main/java/module-info.java b/ext/mvc/src/main/java/module-info.java
index 1a54a21..f3c28b6 100644
--- a/ext/mvc/src/main/java/module-info.java
+++ b/ext/mvc/src/main/java/module-info.java
@@ -14,26 +14,22 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-import org.glassfish.jersey.server.mvc.spi.AbstractTemplateProcessor;
-import org.glassfish.jersey.server.mvc.spi.TemplateProcessor;
-import org.glassfish.jersey.server.mvc.spi.ViewableContext;
-
 module org.glassfish.jersey.ext.mvc {
     requires java.logging;
 
-    requires transitive jakarta.annotation;
-    requires transitive jakarta.inject;
-    requires transitive jakarta.servlet;
-    requires transitive jakarta.ws.rs;
+    requires jakarta.annotation;
+    requires jakarta.inject;
+    requires jakarta.servlet;
+    requires jakarta.ws.rs;
 
-    requires transitive org.glassfish.jersey.core.server;
-    requires transitive org.glassfish.jersey.core.common;
+    requires org.glassfish.jersey.core.server;
+    requires org.glassfish.jersey.core.common;
 
     exports org.glassfish.jersey.server.mvc;
     exports org.glassfish.jersey.server.mvc.internal;
     exports org.glassfish.jersey.server.mvc.spi;
 
-    uses TemplateProcessor;
-    uses ViewableContext;
-    uses AbstractTemplateProcessor;
+    uses org.glassfish.jersey.server.mvc.spi.TemplateProcessor;
+    uses org.glassfish.jersey.server.mvc.spi.ViewableContext;
+    uses org.glassfish.jersey.server.mvc.spi.AbstractTemplateProcessor;
 }
\ No newline at end of file
diff --git a/inject/hk2/src/main/java/module-info.java b/inject/hk2/src/main/java/module-info.java
index ee8cdcb..a177113 100644
--- a/inject/hk2/src/main/java/module-info.java
+++ b/inject/hk2/src/main/java/module-info.java
@@ -21,6 +21,8 @@
 
     requires jakarta.annotation;
     requires jakarta.inject;
+    requires jakarta.ws.rs;
+
     requires java.logging;
 
    //HK2 is not yet modularized
diff --git a/media/jaxb/src/main/java/module-info.java b/media/jaxb/src/main/java/module-info.java
index 079972e..a1fd383 100644
--- a/media/jaxb/src/main/java/module-info.java
+++ b/media/jaxb/src/main/java/module-info.java
@@ -16,8 +16,11 @@
 
 module org.glassfish.jersey.media.jaxb {
     requires java.logging;
+
+    requires jakarta.inject;
     requires jakarta.ws.rs;
     requires jakarta.xml.bind;
+
     requires org.glassfish.jersey.core.common;
 
     opens org.glassfish.jersey.jaxb.internal;
diff --git a/media/json-binding/pom.xml b/media/json-binding/pom.xml
index 80bf389..a54232e 100644
--- a/media/json-binding/pom.xml
+++ b/media/json-binding/pom.xml
@@ -103,4 +103,8 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
+
+    <properties>
+        <surefire.coverage.argline>--add-modules=ALL-MODULE-PATH</surefire.coverage.argline>
+    </properties>
 </project>
diff --git a/media/json-binding/src/main/java/module-info.java b/media/json-binding/src/main/java/module-info.java
index c754b27..986c835 100644
--- a/media/json-binding/src/main/java/module-info.java
+++ b/media/json-binding/src/main/java/module-info.java
@@ -19,6 +19,8 @@
     requires jakarta.ws.rs;
     requires jakarta.json.bind;
 
+    requires osgi.resource.locator;
+
     requires org.glassfish.jersey.core.common;
 
     exports org.glassfish.jersey.jsonb;
diff --git a/tests/integration/cdi-integration/cdi-manually-bound/src/main/java/module-info.java b/tests/integration/cdi-integration/cdi-manually-bound/src/main/java/module-info.java
index c37c0f6..dfc6686 100644
--- a/tests/integration/cdi-integration/cdi-manually-bound/src/main/java/module-info.java
+++ b/tests/integration/cdi-integration/cdi-manually-bound/src/main/java/module-info.java
@@ -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.manuallybound;