initial 4.x documentation changes

Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/docs/src/main/docbook/appendix-properties.xml b/docs/src/main/docbook/appendix-properties.xml
index aa4aee9..ee2effc 100644
--- a/docs/src/main/docbook/appendix-properties.xml
+++ b/docs/src/main/docbook/appendix-properties.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -1117,12 +1117,11 @@
                         <entry>
                             <para>
                                 URI of a HTTP proxy the client connector should use. Default value is not set.
-                                <emphasis>Currently supported with &jersey.apache.ApacheConnectorProvider;,
+                                <emphasis>Currently supported with
                                     &jersey.apache5.Apache5ConnectorProvider;,
                                     &jersey.grizzly.GrizzlyConnectorProvider;,
                                     &jersey.helidon.HelidonConnectorProvider;,
-                                    &jersey.netty.NettyConnectorProvider;,
-                                    &jersey.jetty11.Jetty11ConnectorProvider;, and
+                                    &jersey.netty.NettyConnectorProvider;, and
                                     &jersey.jetty.JettyConnectorProvider; only.</emphasis>
                             </para>
                         </entry>
@@ -1412,221 +1411,6 @@
 
 
     </section>
-    <section xml:id="appendix-properties-client-apache">
-        <title>Apache HTTP client configuration properties</title>
-
-        <para>
-            List of client configuration properties that can be found in &jersey.apache.ApacheClientProperties; class.
-        </para>
-
-        <table>
-            <title>List of Apache 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.apache.ApacheClientProperties.CONNECTION_CLOSING_STRATEGY;</entry>
-                        <entry><literal>jersey.config.apache.client.connectionClosingStrategy</literal></entry>
-                        <entry>
-                            <para>
-                                Strategy that closes the Apache Connection.
-                                Accepts an instance of &jersey.apache.ApacheConnectionClosingStrategy;.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.CONNECTION_MANAGER;</entry>
-                        <entry><literal>jersey.config.apache.client.connectionManager</literal></entry>
-                        <entry>
-                            <para>
-                                Connection Manager which will be used to create
-                                <literal>org.apache.http.client.HttpClient</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.conn.HttpClientConnectionManager</literal>
-                            </para>
-                            <para>
-                                If the property is absent a default Connection Manager will be used
-                                <literal>org.apache.http.impl.conn.BasicHttpClientConnectionManager</literal>.
-                                If you want to use this client in multi-threaded environment, be sure you override default value with
-                                <literal>org.apache.http.impl.conn.PoolingHttpClientConnectionManager</literal> instance.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.CONNECTION_MANAGER_SHARED;</entry>
-                        <entry><literal>jersey.config.apache.client.connectionManagerShared</literal></entry>
-                        <entry>
-                            <para>
-                                A value of &lit.true; indicates that configured connection manager should be shared
-                                among multiple Jersey client runtime instances. It means that closing
-                                a particular client runtime instance does not shut down the underlying
-                                connection manager automatically. In such case, the connection manager life-cycle
-                                should be fully managed by the application code. To release all allocated resources,
-                                caller code should especially ensure
-                                <literal>org.apache.http.conn.HttpClientConnectionManager#shutdown()</literal> gets
-                                invoked eventually.
-                            </para>
-                            <para>
-                                This property may only be set prior to constructing Apache connector using
-                                &jersey.apache.ApacheConnectorProvider;
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>java.lang.Boolean</literal>.
-                            </para>
-                            <para>
-                                The default value is &lit.false;.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.CREDENTIALS_PROVIDER;</entry>
-                        <entry><literal>jersey.config.apache.client.credentialsProvider</literal></entry>
-                        <entry>
-                            <para>
-                                The credential provider that should be used to retrieve
-                                credentials from a user. Credentials needed for proxy authentication
-                                are stored here as well.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.client.CredentialsProvider</literal>.
-                            </para>
-                            <para>
-                                If the property is absent a default provider will be used.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.DISABLE_COOKIES;</entry>
-                        <entry><literal>jersey.config.apache.client.handleCookies</literal></entry>
-                        <entry>
-                            <para>
-                                A value of &lit.false; indicates the client should handle cookies
-                                automatically using HttpClient's default cookie policy. A value
-                                of &lit.true; will cause the client to ignore all cookies.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>java.lang.Boolean</literal>.
-                            </para>
-                            <para>
-                                The default value is &lit.false;.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.KEEPALIVE_STRATEGY;</entry>
-                        <entry><literal>jersey.config.apache.client.keepAliveStrategy</literal></entry>
-                        <entry>
-                            <para>
-                                Apache <literal>ConnectionKeepAliveStrategy</literal> for the
-                                <literal>org.apache.http.client.HttpClient</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.conn.ConnectionKeepAliveStrategy</literal>.
-                            </para>
-                            <para>
-                                If the property is absent the default keepalive strategy of the Apache HTTP library will be used.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION;</entry>
-                        <entry><literal>jersey.config.apache.client.preemptiveBasicAuthentication</literal></entry>
-                        <entry>
-                            <para>
-                                A value of &lit.true; indicates that a client should send an
-                                authentication request even before the server gives a 401
-                                response.
-                            </para>
-                            <para>
-                                This property may only be set prior to constructing Apache connector using
-                                &jersey.apache.ApacheConnectorProvider;.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>java.lang.Boolean</literal>.
-                            </para>
-                            <para>
-                                The default value is &lit.false;.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.REQUEST_CONFIG;</entry>
-                        <entry><literal>jersey.config.apache.client.requestConfig</literal></entry>
-                        <entry>
-                            <para>
-                                Request configuration for the <literal>org.apache.http.client.HttpClient</literal>.
-                                Http parameters which will be used to create <literal>org.apache.http.client.HttpClient</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.client.config.RequestConfig</literal>.
-                            </para>
-                            <para>
-                                If the property is absent the default request configuration will be used.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.RETRY_HANDLER;</entry>
-                        <entry><literal>jersey.config.apache.client.retryHandler</literal></entry>
-                        <entry>
-                            <para>
-                                Apache <literal>HttpRequestRetryHandler</literal> which will be used to create
-                                <literal>org.apache.http.client.HttpClient</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.client.HttpRequestRetryHandler</literal>.
-                            </para>
-                            <para>
-                                If the property is absent a default retry handler will be used
-                                (<literal>org.apache.http.impl.client.DefaultHttpRequestRetryHandler</literal>).
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.REUSE_STRATEGY;</entry>
-                        <entry><literal>jersey.config.apache.client.reuseStrategy</literal></entry>
-                        <entry>
-                            <para>
-                               Apache <literal>ConnectionReuseStrategy</literal> for the
-                                <literal>org.apache.http.client.HttpClient</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of <literal>org.apache.http.ConnectionReuseStrategy</literal>.
-                            </para>
-                            <para>
-                                If the property is absent the default reuse strategy of the Apache HTTP library will be used.
-                            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>&jersey.apache.ApacheClientProperties.USE_SYSTEM_PROPERTIES;</entry>
-                        <entry><literal>jersey.config.apache.client.useSystemProperties</literal></entry>
-                        <entry>
-                            <para>
-                                A value of &lit.false; indicates the client will use default Apache &lit.jersey.client.Connector;
-                                params. A value of &lit.true; will cause the client to take into account the system properties
-                                <literal>https.protocols</literal>, <literal>https.cipherSuites</literal>,
-                                <literal>http.keepAlive</literal>, <literal>http.maxConnections</literal>.
-                            </para>
-                            <para>
-                                The value MUST be an instance of &lit.jdk6.Boolean;
-                            </para>
-                            <para>
-                                The default value is &lit.false;.
-                            </para>
-                        </entry>
-                    </row>
-                </tbody>
-            </tgroup>
-        </table>
-    </section>
     <section xml:id="appendix-properties-client-apache5">
         <title>Apache 5 HTTP client configuration properties</title>
 
diff --git a/docs/src/main/docbook/client.xml b/docs/src/main/docbook/client.xml
index 998e32b..32bd1ce 100644
--- a/docs/src/main/docbook/client.xml
+++ b/docs/src/main/docbook/client.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -641,11 +641,6 @@
                             <entry><literal>org.glassfish.jersey.connectors:jersey-grizzly-connector</literal></entry>
                         </row>
                         <row>
-                            <entry>Apache HTTP client</entry>
-                            <entry>&jersey.apache.ApacheConnectorProvider;</entry>
-                            <entry><literal>org.glassfish.jersey.connectors:jersey-apache-connector</literal></entry>
-                        </row>
-                        <row>
                             <entry>Apache 5 HTTP client</entry>
                             <entry>&jersey.apache5.Apache5ConnectorProvider;</entry>
                             <entry><literal>org.glassfish.jersey.connectors:jersey-apache5-connector</literal></entry>
@@ -656,21 +651,11 @@
                             <entry><literal>org.glassfish.jersey.connectors:jersey-helidon-connector</literal></entry>
                         </row>
                         <row>
-                            <entry>Jetty HTTP client (JDK 17+)</entry>
+                            <entry>Jetty HTTP client</entry>
                             <entry>&jersey.jetty.JettyConnectorProvider;</entry>
                             <entry><literal>org.glassfish.jersey.connectors:jersey-jetty-connector</literal></entry>
                         </row>
                         <row>
-                            <entry>Jetty 11.x HTTP client</entry>
-                            <entry>&jersey.jetty11.Jetty11ConnectorProvider;</entry>
-                            <entry><literal>org.glassfish.jersey.connectors:jersey-jetty11-connector</literal></entry>
-                        </row>
-                        <row>
-                            <entry>Jetty 11.x HTTP/2 client</entry>
-                            <entry>&jersey.jetty11.Jetty11Http2ConnectorProvider;</entry>
-                            <entry><literal>org.glassfish.jersey.connectors:jersey-jetty11-http2-connector</literal></entry>
-                        </row>
-                        <row>
                             <entry>Netty NIO framework</entry>
                             <entry>&jersey.netty.NettyConnectorProvider;</entry>
                             <entry><literal>org.glassfish.jersey.connectors:jersey-netty-connector</literal></entry>
@@ -808,29 +793,6 @@
                 for Jetty HTTP Client, it is possible to access directly the HTTP Client classes and invoke setter methods there.
             </para>
             <section>
-                <title>Apache HttpClientBuilder Configuration</title>
-                <para>
-                    For Apache Connector, an &jersey.apache.ApacheHttpClientBuilderConfigurator; SPI allows for invoking methods
-                    of <literal>org.apache.http.impl.client.HttpClientBuilder</literal>, such as <literal>setDefaultCredentialsProvider</literal>:
-                    <programlisting language="java" linenumbering="numbered">
-                        org.apache.http.client.CredentialsProvider credentialsProvider = new org.apache.http.impl.client.BasicCredentialsProvider();
-                        credentialsProvider.setCredentials(
-                            org.apache.http.auth.AuthScope.ANY,
-                            new org.apache.http.auth.UsernamePasswordCredentials("name", "password")
-                        );
-                        ApacheHttpClientBuilderConfigurator apacheHttpClientBuilderConfigurator = (httpClientBuilder) -> {
-                            return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
-                        };
-
-                        ClientConfig cc = new ClientConfig();
-                        cc.register(apacheHttpClientBuilderConfigurator);
-                        cc.connectorProvider(new ApacheConnectorProvider());
-                        Client client = ClientBuilder.newClient(cc);
-                        ...
-                    </programlisting>
-                </para>
-            </section>
-            <section>
                 <title>Apache 5 HttpClientBuilder Configuration</title>
                 <para>
                     For Apache 5 Connector, an &jersey.apache5.Apache5HttpClientBuilderConfigurator; SPI allows for invoking methods
@@ -868,21 +830,6 @@
                     </programlisting>
                 </para>
             </section>
-            <section>
-                <title>Jetty 11.x HttpClient Configuration</title>
-                <para>
-                    For Jetty Connector, an &jersey.jetty11.Jetty11HttpClientSupplier; SPI allows for providing a configured instance
-                    of <literal>org.eclipse.jetty.client.HttpClient</literal>:
-                    <programlisting language="java" linenumbering="numbered">
-                        HttpClient httpClient = new HttpClient(...);
-                        ClientConfig clientConfig = new ClientConfig()
-                            .connectorProvider(new Jetty11ConnectorProvider())
-                            .register(new Jetty11HttpClientSupplier(httpClient));
-                        Client client = ClientBuilder.newClient(clientConfig);
-                        ...
-                    </programlisting>
-                </para>
-            </section>
         </section>
     </section>
 
diff --git a/docs/src/main/docbook/dependencies.xml b/docs/src/main/docbook/dependencies.xml
index 176fe08..3dab231 100644
--- a/docs/src/main/docbook/dependencies.xml
+++ b/docs/src/main/docbook/dependencies.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -172,16 +172,10 @@
 
 &lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.jersey.connectors&lt;/groupId&gt;
-    &lt;artifactId&gt;jersey-apache-connector&lt;/artifactId&gt;
+    &lt;artifactId&gt;jersey-apache5-connector&lt;/artifactId&gt;
     &lt;version&gt;&version;&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
-    &lt;groupId&gt;org.glassfish.jersey.connectory&lt;/groupId&gt;
-    &lt;artifactId&gt;jersey-jetty11-connector&lt;/artifactId&gt;
-    &lt;version&gt;&version;&lt;/version&gt;
-&lt;/dependency&gt;
-<!-- Requires JDK 17+ -->
-&lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.jersey.connectors&lt;/groupId&gt;
     &lt;artifactId&gt;jersey-jetty-connector&lt;/artifactId&gt;
     &lt;version&gt;&version;&lt;/version&gt;
@@ -218,12 +212,6 @@
 
 &lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.jersey.containers&lt;/groupId&gt;
-    &lt;artifactId&gt;jersey-container-simple-http&lt;/artifactId&gt;
-    &lt;version&gt;&version;&lt;/version&gt;
-&lt;/dependency&gt;
-
-&lt;dependency&gt;
-    &lt;groupId&gt;org.glassfish.jersey.containers&lt;/groupId&gt;
     &lt;artifactId&gt;jersey-container-jetty-http&lt;/artifactId&gt;
     &lt;version&gt;&version;&lt;/version&gt;
 &lt;/dependency&gt;
diff --git a/docs/src/main/docbook/migration.xml b/docs/src/main/docbook/migration.xml
index 03f7b61..e2b39af 100644
--- a/docs/src/main/docbook/migration.xml
+++ b/docs/src/main/docbook/migration.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2023 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -28,127 +28,88 @@
          xml:id="migration">
     <title>Migration Guide</title>
 
-    <section xml:id="mig-3.0.0">
-        <title>Migrating from Jersey 2.32+ to 3.0.x.</title>
-        <section xml:id="mig-3.0.0-breaking-changes">
+    <section xml:id="mig-4.0.0">
+        <title>Migrating from Jersey 3.x to 4.0.x.</title>
+        <section xml:id="mig-4.0.0-breaking-changes">
             <title>Breaking Changes</title>
             <para>
                 <itemizedlist>
                     <listitem>
                         <para>
-                            The most fundamental change in Jersey 3.0.0 and later is namespace change.
-                            Since Jakarta EE 9 the <literal>jakarta.</literal> namespace is introduced as a replacement
-                            for javax namespace from Java EE.
+                            Jersey 4.x is implementation of Jakarta REST 4.0, part of Jakarta EE 11.
+                            For APIs and implementations in Jakarta EE 11, JDK 17 minimum is required.
+                            However, some modules may require higher versions of Java SE. See <xref linkend="se_compatibility"/>.
                         </para>
                     </listitem>
                     <listitem>
                         <para>
-                            Some Jersey modules require higher versions of Java SE. See <xref linkend="se_compatibility"/>.
+                            Jakarta REST 4.0 dropped classes bound to JAX-B, since JAX-B has been removed from Jakarta EE 11 Core
+                            profile. These classes were <literal>jakarta.ws.rs.core.Link.JaxbLink</literal> and
+                            <literal>jakarta.ws.rs.core.Link.JaxbAdapter</literal> along with related methods working with these
+                            classes.
                         </para>
                     </listitem>
                     <listitem>
                         <para>
-                            Examples and tests are reduced in quantity (so you probably will not find all those examples which were available
-                            in the 2.32 version).
+                            Some modules supporting obsolete libraries were dropped.
+                            The Apache 4 HTTP Client supported by <literal>jersey-apache-connector</literal>
+                            is replaced by <literal>jersey-apache5-connector</literal>, using the Apache 5 HTTP Client.
+                        </para>
+                        <para>
+                            <literal>jersey-jetty11-connector</literal> based on Jetty 11 HTTP Client has been dropped, with
+                            <literal>jersey-jetty-connector</literal> based on Jetty 12 HTTP Client as a replacement.
+                        </para>
+                        <para>The same with <literal>jersey-container-jetty11-http</literal> with <literal>jersey-container-jetty-http</literal>
+                            atop Jetty 12 as a replacement.
+                        </para>
+                        <para>
+                            <literal>jersey-container-simple-http</literal> module was removed without a replacement.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>Given JDK 17 does not allow reflection on JDK internal classes, it is no longer possible
+                            to support additional HTTP methods with the default <literal>HttpUrlConnector</literal>, such as popular
+                            HTTP Patch.
                         </para>
                     </listitem>
                     <listitem>
                         <para>
-                            &jersey.server.ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE; is by default
-                            <literal>true</literal>.
+                            Jersey 4.x still uses HK2 as a main DI framework. However, in the future releases (5.x+), the main
+                            DI container would be the CDI container. In CDI, it is not possible to register beans in the injection
+                            container in runtime the way it is possible in HK2 using AbstractBinder; the
+                            &jersey.common.internal.inject.AbstractBinder; is moved to the <literal>jersey-hk2</literal> package.
+                            Also, a releated <literal>org.glassfish.jersey.internal.inject.Bindings</literal> class was moved
+                            into the same package. A few internal <literal>Binding</literal> subclasses and related Jersey
+                            most innate classes are hidden from public usage.
+                            See Section <xref linkend="ioc"/>.
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            Jersey stopped providing jersey as a bundle, known as <literal>jaxrs-ri</literal>. Jersey jars used
+                            in the bundle was only a subset of possibilities Jersey provides with a variety of modules each of
+                            which handles an additional customer use-case. Some modules are not designed to be together on a
+                            classpath with a module from the <literal>jaxrs-ri</literal> bundle and that has been leading to a confusion.
+                        </para>
+                        <para>
+                            The <literal>jaxrs-ri</literal> bundle also contained third party libraries with a different licensing
+                            than Jersey, which also led to a confusion about whole <literal>jaxrs-ri</literal> bundle and
+                            Jersey itself license.
                         </para>
                     </listitem>
                 </itemizedlist>
             </para>
         </section>
-        <section xml:id="mig-3.0.0-removed-deprecated">
-            <title>Removed deprecated APIs</title>
-            <para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            Jackson 1 support was removed.
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </para>
-        </section>
-        <section xml:id="mig-3.0.0-application-servers">
+        <section xml:id="mig-4.0.0-application-servers">
             <title>Application servers for Jersey</title>
             <para>
-                Note that only a few servers support Jakarta EE 9 compatible Servlet API and they are tested with Jersey.
+                Note that only a few servers support Jakarta EE 11 compatible Servlet API and they are tested with Jersey.
                 Those are:
-                <literal>GlassFish 6</literal>,
-                <literal>Grizzly 3</literal>,
-                <literal>Jetty 11 (JDK 11+ required)</literal>,
-                <literal>Payara 6</literal>, and
-                <literal>Tomcat 10</literal>.
+                <literal>GlassFish 8</literal>,
+                <literal>Tomcat 11</literal>.
+                The other containers will follow.
             </para>
         </section>
     </section>
-    <section xml:id="mig-3.1.0">
-        <title>Migrating from Jersey 3.0.x to &version;.</title>
-        <section xml:id="mig-3.1.0-breaking-changes">
-            <title>Breaking Changes</title>
-            <para>
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            Jersey 3.1.0+ is the implementation of Jakarta RESTful WebServices 3.1, which is part of
-                            Jakarta EE 10. Jakarta EE 10 defines the minimum JDK 11 requirement and hence Jersey no longer
-                            supports JDK 8.
-                        </para>
-                        <para>
-                            Some Jersey modules require higher versions of Java SE. See <xref linkend="se_compatibility"/>.
-                        </para>
-                    </listitem>
-                    <listitem>
-                        <para>
-                            Since Jersey 3.1.0+ the <literal>getRequestHeader(String name)</literal> method of the
-                            <literal>ClientRequest</literal> class returns NULL (instead of an empty List) in case if
-                            the specified header does not exist.
-                        </para>
-                    </listitem>
-                </itemizedlist>
-            </para>
-        </section>
-        <section xml:id="mig-3.1.0-application-path">
-            <title>@ApplicationPath Annotation Support</title>
-            <para>
-                Jersey 3.1 supports <literal>@ApplicationPath</literal> annotation by every container, not only the
-                <literal>Servlet</literal> container. This can affect tests, as well as deployments to containers
-                where the annotation used to be ignored by previous versions of Jersey.
-            </para>
-        </section>
-        <section xml:id="mig-3.1.4-jetty-modules">
-            <title>Jetty Modules</title>
-            <itemizedlist>
-                <listitem>
-                    <para>
-                        Jersey 3.0.x, and 3.1.0 - 3.1.3 Jetty modules (jersey-jetty-connector, jersey-container-jetty-http,
-                        jersey-container-jetty-servlet, jersey-test-framework-provider-jetty) are based on Jetty 11,
-                        which is Jakarta EE 9 related.
-                    </para>
-                </listitem>
-                <listitem>
-                    <para>
-                        Jersey 3.1.4 modules use Jetty 12 which is Jakarta EE 10 related (as well as Jersey 3.1.x).
-                        Jetty 12 dependencies use modules names different from Jetty 11.
-                    </para>
-                </listitem>
-            </itemizedlist>
-        </section>
-        <section xml:id="mig-3.1.4">
-            <title>Migrating from Jersey 3.1.3 to 3.1.4</title>
-            <section xml:id="mig-3.1.4-jackson-changes">
-                <title>Changes in Jackson</title>
-                <para>
-                    Jersey 3.1.4 starts to support Jackson 2.15 which comes with default limitations for the length of parsed text,
-                    numbers, and nesting depth. Jersey keeps the Jackson default value, but it allows to override the maximum
-                    length of parsed text using the &jersey.message.MessageProperties.JSON_MAX_STRING_LENGTH; property if needed.
-                </para>
-            </section>
-        </section>
-    </section>
 
 </chapter>
diff --git a/docs/src/main/docbook/modules.xml b/docs/src/main/docbook/modules.xml
index fb54949..70adc4d 100644
--- a/docs/src/main/docbook/modules.xml
+++ b/docs/src/main/docbook/modules.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -149,14 +149,6 @@
 </row>
 <row>
 <entry>
-<link xlink:href="https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project/jersey-container-simple-http/dependencies.html">
-    jersey-container-simple-http
-</link>
-</entry>
-<entry>Simple Http Container</entry>
-</row>
-<row>
-<entry>
 <link xlink:href="https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project/project/jersey-gf-ejb/dependencies.html">
     jersey-gf-ejb
 </link>
@@ -187,14 +179,6 @@
 </row>
 <row>
 <entry>
-<link xlink:href="https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project/jersey-apache-connector/dependencies.html">
-    jersey-apache-connector
-</link>
-</entry>
-<entry>Jersey Client Transport via Apache</entry>
-</row>
-<row>
-<entry>
 <link xlink:href="https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project/jersey-grizzly-connector/dependencies.html">
     jersey-grizzly-connector
 </link>
@@ -223,15 +207,7 @@
     jersey-jetty-connector
 </link>
 </entry>
-<entry>Jersey Client Transport via Jetty (for JDK 17+)</entry>
-</row>
-<row>
-<entry>
-<link xlink:href="https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project/jersey-jetty11-connector/dependencies.html">
-    jersey-jetty11-connector
-</link>
-</entry>
-<entry>Jersey Client Transport via Jetty 11.x</entry>
+<entry>Jersey Client Transport via Jetty</entry>
 </row>
             <!-- TODO - HTTP/2 support for Jetty 12 container -->
 <row>