Rename Java Connector to JavaNetHttp Connector (#5066)

Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/bom/pom.xml b/bom/pom.xml
index 32bf17d..8584f51 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -80,7 +80,7 @@
             </dependency>
             <dependency>
                 <groupId>org.glassfish.jersey.connectors</groupId>
-                <artifactId>jersey-java-connector</artifactId>
+                <artifactId>jersey-jnh-connector</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
diff --git a/bundles/apidocs/pom.xml b/bundles/apidocs/pom.xml
index 7e3c65c..bd175fb 100644
--- a/bundles/apidocs/pom.xml
+++ b/bundles/apidocs/pom.xml
@@ -75,6 +75,11 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.jersey.connectors</groupId>
+            <artifactId>jersey-jnh-connector</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.connectors</groupId>
             <artifactId>jersey-jdk-connector</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaClientProperties.java b/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaClientProperties.java
deleted file mode 100644
index cb8f60e..0000000
--- a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaClientProperties.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2021 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
- */
-
-package org.glassfish.jersey.java.connector;
-
-import org.glassfish.jersey.internal.util.PropertiesClass;
-
-import java.net.http.HttpClient;
-
-/**
- * Provides configuration properties for a {@link JavaConnector}.
- *
- * @author Steffen Nießing
- */
-@PropertiesClass
-public class JavaClientProperties {
-    /**
-     * Configuration of the {@link java.net.CookieHandler} that should be used by the {@link HttpClient}.
-     * If this option is not set, {@link HttpClient#cookieHandler()} will return an empty {@link java.util.Optional}
-     * and therefore no cookie handler will be used.
-     *
-     * A provided value to this option has to be of type {@link java.net.CookieHandler}.
-     */
-    public static final String COOKIE_HANDLER = "jersey.config.java.client.cookieHandler";
-
-    /**
-     * Configuration of SSL parameters used by the {@link HttpClient}.
-     * If this option is not set, then the {@link HttpClient} will use <it>implementation specific</it> default values.
-     *
-     * A provided value to this option has to be of type {@link javax.net.ssl.SSLParameters}.
-     */
-    public static final String SSL_PARAMETERS = "jersey.config.java.client.sslParameters";
-
-    /**
-     * Prevent this class from instantiation.
-     */
-    private JavaClientProperties() {}
-}
diff --git a/connectors/java-connector/pom.xml b/connectors/jnh-connector/pom.xml
similarity index 90%
rename from connectors/java-connector/pom.xml
rename to connectors/jnh-connector/pom.xml
index c2f1ef0..df184de 100644
--- a/connectors/java-connector/pom.xml
+++ b/connectors/jnh-connector/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2021, 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
@@ -27,11 +27,11 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>jersey-java-connector</artifactId>
+    <artifactId>jersey-jnh-connector</artifactId>
     <packaging>jar</packaging>
-    <name>jersey-connectors-java</name>
+    <name>jersey-connectors-jnh</name>
 
-    <description>Jersey Client Transport via Java's HttpClient</description>
+    <description>Jersey Client Transport via java.net.http.HttpClient introduced in Java 11</description>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpClientProperties.java b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpClientProperties.java
new file mode 100644
index 0000000..9c3097b
--- /dev/null
+++ b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpClientProperties.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2021, 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
+ */
+
+package org.glassfish.jersey.jnh.connector;
+
+import org.glassfish.jersey.internal.util.PropertiesClass;
+
+import java.net.http.HttpClient;
+
+/**
+ * Provides configuration properties for a {@link JavaNetHttpConnector}.
+ *
+ * @author Steffen Nießing
+ */
+@PropertiesClass
+public class JavaNetHttpClientProperties {
+    /**
+     * <p>
+     *     Configuration of the {@link java.net.CookieHandler} that should be used by the {@link HttpClient}.
+     *     If this option is not set, {@link HttpClient#cookieHandler()} will return an empty {@link java.util.Optional}
+     *     and therefore no cookie handler will be used.
+     * </p>
+     * <p>
+     *     A provided value to this option has to be of type {@link java.net.CookieHandler}.
+     * </p>
+     * <p>
+     *     The name of the configuration property is <tt>{@value}</tt>.
+     * </p>
+     */
+    public static final String COOKIE_HANDLER = "jersey.config.jnh.client.cookieHandler";
+
+    /**
+     * <p>
+     *     Configuration of SSL parameters used by the {@link HttpClient}.
+     *     If this option is not set, then the {@link HttpClient} will use <it>implementation specific</it> default values.
+     * </p>
+     * <p>
+     *     A provided value to this option has to be of type {@link javax.net.ssl.SSLParameters}.
+     * </p>
+     * <p>
+     *     The name of the configuration property is <tt>{@value}</tt>.
+     * </p>
+     */
+    public static final String SSL_PARAMETERS = "jersey.config.jnh.client.sslParameters";
+
+    /**
+     * Prevent this class from instantiation.
+     */
+    private JavaNetHttpClientProperties() {}
+}
diff --git a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnector.java b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnector.java
similarity index 91%
rename from connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnector.java
rename to connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnector.java
index 9c104ab..cb166d5 100644
--- a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnector.java
+++ b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnector.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.ProcessingException;
 import jakarta.ws.rs.client.Client;
@@ -53,14 +53,14 @@
  * <ul>
  *     <li>{@link ClientProperties#CONNECT_TIMEOUT}</li>
  *     <li>{@link ClientProperties#FOLLOW_REDIRECTS}</li>
- *     <li>{@link JavaClientProperties#COOKIE_HANDLER}</li>
- *     <li>{@link JavaClientProperties#SSL_PARAMETERS}</li>
+ *     <li>{@link JavaNetHttpClientProperties#COOKIE_HANDLER}</li>
+ *     <li>{@link JavaNetHttpClientProperties#SSL_PARAMETERS}</li>
  * </ul>
  *
  * @author Steffen Nießing
  */
-public class JavaConnector implements Connector {
-    private static final Logger LOGGER = Logger.getLogger(JavaConnector.class.getName());
+public class JavaNetHttpConnector implements Connector {
+    private static final Logger LOGGER = Logger.getLogger(JavaNetHttpConnector.class.getName());
 
     private final HttpClient httpClient;
 
@@ -70,7 +70,7 @@
      * @param client a Jersey client instance to get additional configuration properties from (e.g. {@link SSLContext})
      * @param configuration the configuration properties for this connector
      */
-    public JavaConnector(final Client client, final Configuration configuration) {
+    public JavaNetHttpConnector(final Client client, final Configuration configuration) {
         HttpClient.Builder httpClientBuilder = HttpClient.newBuilder();
         httpClientBuilder.version(HttpClient.Version.HTTP_1_1);
         SSLContext sslContext = client.getSslContext();
@@ -81,7 +81,8 @@
         if (connectTimeout != null) {
             httpClientBuilder.connectTimeout(Duration.of(connectTimeout, ChronoUnit.MILLIS));
         }
-        CookieHandler cookieHandler = getPropertyOrNull(configuration, JavaClientProperties.COOKIE_HANDLER, CookieHandler.class);
+        CookieHandler cookieHandler =
+                getPropertyOrNull(configuration, JavaNetHttpClientProperties.COOKIE_HANDLER, CookieHandler.class);
         if (cookieHandler != null) {
             httpClientBuilder.cookieHandler(cookieHandler);
         }
@@ -91,7 +92,8 @@
         } else {
             httpClientBuilder.followRedirects(HttpClient.Redirect.NORMAL);
         }
-        SSLParameters sslParameters = getPropertyOrNull(configuration, JavaClientProperties.SSL_PARAMETERS, SSLParameters.class);
+        SSLParameters sslParameters =
+                getPropertyOrNull(configuration, JavaNetHttpClientProperties.SSL_PARAMETERS, SSLParameters.class);
         if (sslParameters != null) {
             httpClientBuilder.sslParameters(sslParameters);
         }
diff --git a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnectorProvider.java b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnectorProvider.java
similarity index 79%
rename from connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnectorProvider.java
rename to connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnectorProvider.java
index 1fa38ab..32bde1b 100644
--- a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/JavaConnectorProvider.java
+++ b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/JavaNetHttpConnectorProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.client.Client;
 import jakarta.ws.rs.core.Configurable;
@@ -33,25 +33,25 @@
  *     <ul>
  *         <li>{@link ClientProperties#CONNECT_TIMEOUT}</li>
  *         <li>{@link ClientProperties#FOLLOW_REDIRECTS} (defaults to {@link java.net.http.HttpClient.Redirect#NORMAL} when unset)</li>
- *         <li>{@link JavaClientProperties#COOKIE_HANDLER}</li>
- *         <li>{@link JavaClientProperties#SSL_PARAMETERS}</li>
+ *         <li>{@link JavaNetHttpClientProperties#COOKIE_HANDLER}</li>
+ *         <li>{@link JavaNetHttpClientProperties#SSL_PARAMETERS}</li>
  *     </ul>
  * </p>
  *
  * @author Steffen Nießing
  */
-public class JavaConnectorProvider implements ConnectorProvider {
+public class JavaNetHttpConnectorProvider implements ConnectorProvider {
     @Override
     public Connector getConnector(Client client, Configuration runtimeConfig) {
-        return new JavaConnector(client, runtimeConfig);
+        return new JavaNetHttpConnector(client, runtimeConfig);
     }
 
     /**
-     * Retrieve the Java {@link HttpClient} used by the provided {@link JavaConnector}.
+     * Retrieve the Java {@link HttpClient} used by the provided {@link JavaNetHttpConnector}.
      *
-     * @param component the component from which the {@link JavaConnector} should be retrieved
+     * @param component the component from which the {@link JavaNetHttpConnector} should be retrieved
      * @return a Java {@link HttpClient} instance
-     * @throws java.lang.IllegalArgumentException if a {@link JavaConnector} cannot be provided from the given {@code component}
+     * @throws java.lang.IllegalArgumentException if a {@link JavaNetHttpConnector} cannot be provided from the given {@code component}
      */
     public static HttpClient getHttpClient(Configurable<?> component) {
         try {
@@ -61,8 +61,8 @@
                     ? initializable.getConfiguration().getConnector()
                     : initializable.preInitialize().getConfiguration().getConnector();
 
-            if (connector instanceof JavaConnector) {
-                return ((JavaConnector) connector).getHttpClient();
+            if (connector instanceof JavaNetHttpConnector) {
+                return ((JavaNetHttpConnector) connector).getHttpClient();
             } else {
                 throw new IllegalArgumentException(LocalizationMessages.EXPECTED_CONNECTOR_PROVIDER_NOT_USED());
             }
diff --git a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/package-info.java b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/package-info.java
similarity index 85%
rename from connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/package-info.java
rename to connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/package-info.java
index e50e0bb..6a5e83a 100644
--- a/connectors/java-connector/src/main/java/org/glassfish/jersey/java/connector/package-info.java
+++ b/connectors/jnh-connector/src/main/java/org/glassfish/jersey/jnh/connector/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -18,4 +18,4 @@
  * Jersey client {@link org.glassfish.jersey.client.spi.Connector connector} based on
  * Java's {@link java.net.http.HttpClient}.
  */
-package org.glassfish.jersey.java.connector;
\ No newline at end of file
+package org.glassfish.jersey.jnh.connector;
\ No newline at end of file
diff --git a/connectors/java-connector/src/main/resources/org/glassfish/jersey/java/connector/localization.properties b/connectors/jnh-connector/src/main/resources/org/glassfish/jersey/jnh/connector/localization.properties
similarity index 92%
rename from connectors/java-connector/src/main/resources/org/glassfish/jersey/java/connector/localization.properties
rename to connectors/jnh-connector/src/main/resources/org/glassfish/jersey/jnh/connector/localization.properties
index ca98e99..289b5e3 100644
--- a/connectors/java-connector/src/main/resources/org/glassfish/jersey/java/connector/localization.properties
+++ b/connectors/jnh-connector/src/main/resources/org/glassfish/jersey/jnh/connector/localization.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2021, 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
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AbstractJavaConnectorTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AbstractJavaConnectorTest.java
similarity index 93%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AbstractJavaConnectorTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AbstractJavaConnectorTest.java
index 7d3980d..6d6e3c0 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AbstractJavaConnectorTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AbstractJavaConnectorTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.Consumes;
 import jakarta.ws.rs.DefaultValue;
@@ -42,7 +42,7 @@
 import java.util.logging.Logger;
 
 /**
- * An abstract base class for tests of the {@link JavaConnector} providing common resources and utility methods.
+ * An abstract base class for tests of the {@link JavaNetHttpConnector} providing common resources and utility methods.
  */
 abstract class AbstractJavaConnectorTest extends JerseyTest {
     private static final Logger LOGGER = Logger.getLogger(AbstractJavaConnectorTest.class.getName());
@@ -123,6 +123,6 @@
     @Override
     protected void configureClient(ClientConfig config) {
         config.register(new LoggingFeature(LOGGER, LoggingFeature.Verbosity.PAYLOAD_ANY));
-        config.connectorProvider(new JavaConnectorProvider());
+        config.connectorProvider(new JavaNetHttpConnectorProvider());
     }
 }
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AsyncTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AsyncTest.java
similarity index 95%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AsyncTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AsyncTest.java
index dc08521..4cb1c48 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/AsyncTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/AsyncTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.client.Entity;
 import jakarta.ws.rs.core.Response;
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/BodyPublisherTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/BodyPublisherTest.java
similarity index 94%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/BodyPublisherTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/BodyPublisherTest.java
index dbbbe82..ca15382 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/BodyPublisherTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/BodyPublisherTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.client.Entity;
 import jakarta.ws.rs.core.MediaType;
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/OptionsMethodTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/OptionsMethodTest.java
similarity index 90%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/OptionsMethodTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/OptionsMethodTest.java
index 27ec125..8206602 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/OptionsMethodTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/OptionsMethodTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.core.Response;
 import org.junit.Test;
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RedirectTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RedirectTest.java
similarity index 92%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RedirectTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RedirectTest.java
index 1cd0c3d..2b730ca 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RedirectTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RedirectTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import jakarta.ws.rs.core.Response;
 import org.glassfish.jersey.client.ClientProperties;
diff --git a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RetrieveHttpClientFromConnectorProviderTest.java b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RetrieveHttpClientFromConnectorProviderTest.java
similarity index 68%
rename from connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RetrieveHttpClientFromConnectorProviderTest.java
rename to connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RetrieveHttpClientFromConnectorProviderTest.java
index aa831de..1bc10f8 100644
--- a/connectors/java-connector/src/test/java/org/glassfish/jersey/java/connector/RetrieveHttpClientFromConnectorProviderTest.java
+++ b/connectors/jnh-connector/src/test/java/org/glassfish/jersey/jnh/connector/RetrieveHttpClientFromConnectorProviderTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.jersey.java.connector;
+package org.glassfish.jersey.jnh.connector;
 
 import org.junit.Test;
 
@@ -23,7 +23,7 @@
 import static org.assertj.core.api.Assertions.assertThat;
 
 /**
- * Tests access to the {@link HttpClient} instance provided from the {@link JavaConnectorProvider}.
+ * Tests access to the {@link HttpClient} instance provided from the {@link JavaNetHttpConnectorProvider}.
  */
 public class RetrieveHttpClientFromConnectorProviderTest extends AbstractJavaConnectorTest {
     /**
@@ -32,9 +32,9 @@
      */
     @Test
     public void testClientUsesJavaConnector() {
-        assertThat(JavaConnectorProvider.getHttpClient(client())).isInstanceOf(HttpClient.class);
-        assertThat(JavaConnectorProvider.getHttpClient(target())).isInstanceOf(HttpClient.class);
-        assertThat(JavaConnectorProvider.getHttpClient(client()))
-                .isEqualTo(JavaConnectorProvider.getHttpClient(target()));
+        assertThat(JavaNetHttpConnectorProvider.getHttpClient(client())).isInstanceOf(HttpClient.class);
+        assertThat(JavaNetHttpConnectorProvider.getHttpClient(target())).isInstanceOf(HttpClient.class);
+        assertThat(JavaNetHttpConnectorProvider.getHttpClient(client()))
+                .isEqualTo(JavaNetHttpConnectorProvider.getHttpClient(target()));
     }
 }
diff --git a/connectors/pom.xml b/connectors/pom.xml
index ade8b73..79ce003 100644
--- a/connectors/pom.xml
+++ b/connectors/pom.xml
@@ -40,8 +40,8 @@
         <module>helidon-connector</module>
         <module>jdk-connector</module>
         <module>jetty-connector</module>
+        <module>jnh-connector</module>
         <module>netty-connector</module>
-<!--        <module>java-connector</module> temporarily for M3-->
     </modules>
 
     <dependencies>
diff --git a/docs/src/main/docbook/appendix-properties.xml b/docs/src/main/docbook/appendix-properties.xml
index a3232c6..dcd681b 100644
--- a/docs/src/main/docbook/appendix-properties.xml
+++ b/docs/src/main/docbook/appendix-properties.xml
@@ -1849,4 +1849,55 @@
             </tgroup>
         </table>
     </section>
+    <section xml:id="appendix-properties-client-jnh">
+        <title>Java Net HTTP client configuration properties</title>
+
+        <para>
+            List of client configuration properties that can be found in &jersey.jnh.JavaNetHttpClientProperties; class.
+        </para>
+
+        <table>
+            <title>List of Java Net HTTP client configuration properties</title>
+            <tgroup cols="3">
+                <thead>
+                    <row>
+                        <entry>Constant</entry>
+                        <entry>Value</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry>&jersey.jnh.JavaNetHttpClientProperties.COOKIE_HANDLER;</entry>
+                        <entry><literal>jersey.config.jnh.client.cookieHandler</literal></entry>
+                        <entry>
+                            <para>
+                                Configuration of the <literal>java.net.CookieHandler</literal> that should be used by the
+                                <literal>java.net.http.HttpClient</literal>. If this option is not set,
+                                <literal>java.net.http.HttpClient#cookieHandler()</literal> will return an empty
+                                <literal>java.util.Optional</literal> and therefore no cookie handler will be used.
+                            </para>
+                            <para>
+                                A provided value to this option has to be of type <literal>java.net.CookieHandler</literal>.
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>&jersey.jnh.JavaNetHttpClientProperties.SSL_PARAMETERS;</entry>
+                        <entry><literal>jersey.config.jnh.client.sslParameters</literal></entry>
+                        <entry>
+                            <para>
+                                Configuration of SSL parameters used by the <literal>java.net.http.HttpClient</literal>.
+                                If this option is not set, then the <literal>java.net.http.HttpClient</literal> will use
+                                <it>implementation specific</it> default values.
+                            </para>
+                            <para>
+                                A provided value to this option has to be of type <literal>javax.net.ssl.SSLParameters</literal>.
+                            </para>
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </section>
 </appendix>
\ No newline at end of file
diff --git a/docs/src/main/docbook/client.xml b/docs/src/main/docbook/client.xml
index 1ba38d2..8d3fd74 100644
--- a/docs/src/main/docbook/client.xml
+++ b/docs/src/main/docbook/client.xml
@@ -670,6 +670,11 @@
                             <entry>&jersey.jdk.JdkConnectorProvider;</entry>
                             <entry><literal>org.glassfish.jersey.connectors:jersey-jdk-connector</literal></entry>
                         </row>
+                        <row>
+                            <entry>Java java.net.http client</entry>
+                            <entry>&jersey.jnh.JavaNetHttpConnectorProvider;</entry>
+                            <entry><literal>org.glassfish.jersey.connectors:jersey-jnh-connector</literal></entry>
+                        </row>
                     </tbody>
                 </tgroup>
             </table>
diff --git a/docs/src/main/docbook/jersey.ent b/docs/src/main/docbook/jersey.ent
index 4ffb0df..bc123fe 100644
--- a/docs/src/main/docbook/jersey.ent
+++ b/docs/src/main/docbook/jersey.ent
@@ -475,6 +475,11 @@
 <!ENTITY jersey.jetty.JettyHttpContainerFactory "<link xlink:href='&jersey.javadoc.uri.prefix;/jetty/JettyHttpContainerFactory.html'>JettyHttpContainerFactory</link>">
 <!ENTITY jersey.jetty.JettyHttpContainerProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/jetty/JettyHttpContainerProvider.html'>JettyHttpContainerProvider</link>">
 <!ENTITY jersey.jetty.JettyWebContainerFactory "<link xlink:href='&jersey.javadoc.uri.prefix;/jetty/servlet/JettyWebContainerFactory.html'>JettyWebContainerFactory</link>">
+<!ENTITY jersey.jnh.JavaNetHttpConnectorProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/jnh/connector/JavaNetHttpConnectorProvider.html'>JavaNetHttpConnectorProvider</link>">
+<!ENTITY jersey.jnh.JavaNetHttpClientProperties "<link xlink:href='&jersey.javadoc.uri.prefix;/jnh/connector/JavaNetHttpClientProperties.html'>JavaNetHttpClientProperties</link>">
+<!ENTITY jersey.jnh.JavaNetHttpClientProperties "<link xlink:href='&jersey.javadoc.uri.prefix;/jnh/connector/JavaNetHttpClientProperties.html'>JavaNetHttpClientProperties</link>">
+<!ENTITY jersey.jnh.JavaNetHttpClientProperties.COOKIE_HANDLER "<link xlink:href='&jersey.javadoc.uri.prefix;/jnh/connector/JavaNetHttpClientProperties.html#COOKIE_HANDLER'>JavaNetHttpClientProperties.COOKIE_HANDLER</link>">
+<!ENTITY jersey.jnh.JavaNetHttpClientProperties.SSL_PARAMETERS "<link xlink:href='&jersey.javadoc.uri.prefix;/jnh/connector/JavaNetHttpClientProperties.html#SSL_PARAMETERS'>JavaNetHttpClientProperties.SSL_PARAMETERS</link>">
 <!ENTITY jersey.linking.DeclarativeLinkingFeature "<link xlink:href='&jersey.javadoc.uri.prefix;/linking/DeclarativeLinkingFeature.html'>DeclarativeLinkingFeature</link>">
 <!ENTITY jersey.logging.LoggingFeature "<link xlink:href='&jersey.javadoc.uri.prefix;/logging/LoggingFeature.html'>LoggingFeature</link>">
 <!ENTITY jersey.logging.LoggingFeature.DEFAULT_LOGGER_NAME "<link xlink:href='&jersey.javadoc.uri.prefix;/logging/LoggingFeature.html#DEFAULT_LOGGER_NAME'>LoggingFeature.DEFAULT_LOGGER_NAME</link>">
diff --git a/tests/e2e-client/pom.xml b/tests/e2e-client/pom.xml
index b52fcd7..e58048f 100644
--- a/tests/e2e-client/pom.xml
+++ b/tests/e2e-client/pom.xml
@@ -129,6 +129,11 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.jersey.connectors</groupId>
+            <artifactId>jersey-jnh-connector</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.connectors</groupId>
             <artifactId>jersey-jdk-connector</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java
index 4a4fabe..bfc5bb0 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/HttpPatchTest.java
@@ -37,6 +37,7 @@
 import org.glassfish.jersey.grizzly.connector.GrizzlyConnectorProvider;
 import org.glassfish.jersey.jdk.connector.JdkConnectorProvider;
 import org.glassfish.jersey.jetty.connector.JettyConnectorProvider;
+import org.glassfish.jersey.jnh.connector.JavaNetHttpConnectorProvider;
 import org.glassfish.jersey.logging.LoggingFeature;
 import org.glassfish.jersey.netty.connector.NettyConnectorProvider;
 import org.glassfish.jersey.server.ResourceConfig;
@@ -66,6 +67,7 @@
                 {Apache5ConnectorProvider.class},
                 {NettyConnectorProvider.class},
                 {JdkConnectorProvider.class},
+                {JavaNetHttpConnectorProvider.class}
                 }));
     }
 
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java
index d955ff3..2299309 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/RequestHeaderModificationsTest.java
@@ -56,9 +56,10 @@
 import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.client.HttpUrlConnectorProvider;
 import org.glassfish.jersey.client.spi.ConnectorProvider;
+import org.glassfish.jersey.jetty.connector.JettyConnectorProvider;
+import org.glassfish.jersey.jnh.connector.JavaNetHttpConnectorProvider;
 import org.glassfish.jersey.logging.LoggingFeature;
 import org.glassfish.jersey.grizzly.connector.GrizzlyConnectorProvider;
-import org.glassfish.jersey.jetty.connector.JettyConnectorProvider;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.test.JerseyTest;
 import org.glassfish.jersey.test.TestProperties;
@@ -105,11 +106,13 @@
                 {JettyConnectorProvider.class, false, false}, // change to true when JERSEY-2341 fixed
                 {ApacheConnectorProvider.class, false, false}, // change to true when JERSEY-2341 fixed
                 {Apache5ConnectorProvider.class, false, false}, // change to true when JERSEY-2341 fixed
+                {JavaNetHttpConnectorProvider.class, true, false},
                 {HttpUrlConnectorProvider.class, true, true},
                 {GrizzlyConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed
                 {JettyConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed
                 {ApacheConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed
                 {Apache5ConnectorProvider.class, false, true}, // change to true when JERSEY-2341 fixed
+                {JavaNetHttpConnectorProvider.class, true, true},
         }));
     }
 
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java
index f26fca9..79d944d 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/AbstractConnectorServerTest.java
@@ -29,6 +29,7 @@
 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.jnh.connector.JavaNetHttpConnectorProvider;
 
 import org.glassfish.jersey.tests.e2e.client.connector.ProviderFiltering;
 import org.junit.After;
@@ -63,7 +64,8 @@
                 {new GrizzlyConnectorProvider()},
                 {new JettyConnectorProvider()},
                 {new ApacheConnectorProvider()},
-                {new Apache5ConnectorProvider()}
+                {new Apache5ConnectorProvider()},
+                {new JavaNetHttpConnectorProvider()}
         }));
     }
 
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorHostnameVerifierTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorHostnameVerifierTest.java
index 1e21173..e962684 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorHostnameVerifierTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SslConnectorHostnameVerifierTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -32,6 +32,7 @@
 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.jnh.connector.JavaNetHttpConnectorProvider;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,8 +68,12 @@
      */
     @Test
     public void testHostnameVerifierApplied() throws Exception {
-        // Grizzly and Jetty connectors don't support Hostname Verification
-        if (isExcluded(Arrays.asList(GrizzlyConnectorProvider.class, JettyConnectorProvider.class))) {
+        // Grizzly, JavaNetHttp, and Jetty connectors don't support Hostname Verification
+        if (isExcluded(Arrays.asList(
+                GrizzlyConnectorProvider.class,
+                JettyConnectorProvider.class,
+                JavaNetHttpConnectorProvider.class)
+        )) {
             return;
         }
 
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/httpurlconnector/Expect100ContinueTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/httpurlconnector/Expect100ContinueTest.java
index 176e4d3..cae89b9 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/httpurlconnector/Expect100ContinueTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/httpurlconnector/Expect100ContinueTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2020, 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
@@ -16,9 +16,7 @@
 
 package org.glassfish.jersey.tests.e2e.client.httpurlconnector;
 
-import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.client.HttpUrlConnectorProvider;
 import org.glassfish.jersey.client.RequestEntityProcessing;
 import org.glassfish.jersey.client.http.Expect100ContinueFeature;
 import org.glassfish.jersey.server.ResourceConfig;