19 chapters of User Guide reviewed (#4711)

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/docs/pom.xml b/docs/pom.xml
index 0f18781..bc9e27b 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -45,7 +45,7 @@
                 <executions>
                     <execution>
                         <configuration>
-                            <tasks>
+                            <target>
                                 <echo message="Preparing char entities" />
                                 <mkdir dir="${src.dir}" />
                                 <copy todir="${src.dir}">
@@ -63,7 +63,7 @@
                                 <replace file="${src.dir}/jersey.ent" token="$repository" value="${javanet.repository.id}" />
                                 <replace file="${src.dir}/jersey.ent" token="$src.branch" value="${jersey.src.branch}" />
                                 <replace file="${src.dir}/jersey.ent" token="$version" value="${jersey.version}" />
-                            </tasks>
+                            </target>
                         </configuration>
                         <id>process-entities</id>
                         <phase>package</phase>
diff --git a/docs/src/main/docbook/appendix-properties.xml b/docs/src/main/docbook/appendix-properties.xml
index 6011f89..5c3455e 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, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -49,8 +49,22 @@
                 </thead>
                 <tbody>
                     <row>
-                        <entry>&jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE;</entry>
-                        <entry><literal>jersey.config.disableAutoDiscovery</literal></entry>
+                        <entry>&jersey.common.CommonProperties.ALLOW_SYSTEM_PROPERTIES_PROVIDER;</entry>
+                        <entry><literal>jersey.config.allowSystemPropertiesProvider</literal></entry>
+                        <entry>
+                            <para>
+                                Property which allows (if true) default System properties configuration provider.
+                                Default value is <literal>true</literal>.
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>&jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE; /
+                            &jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_CLIENT; /
+                            &jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_SERVER;</entry>
+                        <entry><literal>jersey.config.disableAutoDiscovery</literal>/
+                            <literal>jersey.config.client.disableAutoDiscovery</literal>/
+                            <literal>jersey.config.server.disableAutoDiscovery</literal></entry>
                         <entry>
                             <para>
                                 Disables feature auto discovery globally on client/server. Default value is <literal>false</literal>.
@@ -58,8 +72,12 @@
                         </entry>
                     </row>
                     <row>
-                        <entry>&jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE;</entry>
-                        <entry><literal>jersey.config.disableJsonProcessing</literal></entry>
+                        <entry>&jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE; /
+                            &jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_CLIENT; /
+                            &jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_SERVER;</entry>
+                        <entry><literal>jersey.config.disableJsonProcessing</literal> /
+                            <literal>jersey.config.client.disableJsonProcessing</literal> /
+                            <literal>jersey.config.server.disableJsonProcessing</literal></entry>
                         <entry>
                             <para>
                                 Disables configuration of Json Processing (JSR-353) feature. Default value is <literal>false</literal>.
@@ -67,8 +85,12 @@
                         </entry>
                     </row>
                     <row>
-                        <entry>&jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE;</entry>
-                        <entry><literal>jersey.config.disableMetainfServicesLookup</literal></entry>
+                        <entry>&jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE; /
+                            &jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_CLIENT; /
+                            &jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_SERVER;</entry>
+                        <entry><literal>jersey.config.disableMetainfServicesLookup</literal> /
+                            <literal>jersey.config.client.disableMetainfServicesLookup</literal> /
+                            <literal>jersey.config.server.disableMetainfServicesLookup</literal></entry>
                         <entry>
                             <para>
                                 Disables META-INF/services lookup globally on client/server. Default value is <literal>false</literal>.
@@ -76,8 +98,12 @@
                         </entry>
                     </row>
                     <row>
-                        <entry>&jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE;</entry>
-                        <entry><literal>jersey.config.disableMoxyJson</literal></entry>
+                        <entry>&jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE; /
+                            &jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE_CLIENT; /
+                            &jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE_SERVER;</entry>
+                        <entry><literal>jersey.config.disableMoxyJson</literal> /
+                            <literal>jersey.config.client.disableMoxyJson</literal> /
+                            <literal>jersey.config.server.disableMoxyJson</literal></entry>
                         <entry>
                             <para>
                                 Disables configuration of MOXy Json feature. Default value is <literal>false</literal>.
@@ -85,8 +111,12 @@
                         </entry>
                     </row>
                     <row>
-                        <entry>&jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER;</entry>
-                        <entry><literal>jersey.config.contentLength.buffer</literal></entry>
+                        <entry>&jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER; /
+                            &jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_CLIENT; /
+                            &jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER;</entry>
+                        <entry><literal>jersey.config.contentLength.buffer</literal> /
+                            <literal>jersey.config.client.contentLength.buffer</literal> /
+                            <literal>jersey.config.server.contentLength.buffer</literal></entry>
                         <entry>
                             <para>
                                 An integer value that defines the buffer size used to buffer the outbound message entity in order to
@@ -96,6 +126,28 @@
                         </entry>
                     </row>
                     <row>
+                        <entry>&jersey.common.CommonProperties.PROVIDER_DEFAULT_DISABLE;
+                        </entry>
+                        <entry>
+                            <literal>jersey.config.disableDefaultProvider</literal>
+                        </entry>
+                        <entry>
+                            Disable some of the default providers from being loaded. The following providers extend application footprint
+                            by XML dependencies, which is too heavy for native image, or by AWT which may possibly be not available by JDK 11 desktop:
+
+                            <simplelist><member>java.awt.image.RenderedImage</member>
+                                <member>javax.xml.transform.Source</member>
+                                <member>javax.xml.transform.dom.DOMSource</member>
+                                <member>javax.xml.transform.sax.SAXSource</member>
+                                <member>javax.xml.transform.stream.StreamSource</member></simplelist>
+
+                            The following are the options to disable the provides: {@code DOMSOURCE, RENDEREDIMAGE, SAXSOURCE, SOURCE, STREAMSOURCE},
+                            or to disable all: {@code ALL}. Multiple options can be disabled by adding multiple comma separated values.
+                            Default value is <literal>NULL</literal>
+                            @since 2.30
+                        </entry>
+                    </row>
+                    <row>
                         <entry>&jersey.logging.LoggingFeature.LOGGING_FEATURE_LOGGER_NAME;
                         </entry>
                         <entry>
@@ -514,8 +566,8 @@
                         </entry>
                     </row>
                     <row>
-                        <entry>&jersey.server.ServerProperties.SUBRESOURCE_LOCATOR_CACHE_SIZE;</entry>
-                        <entry><literal>jersey.config.server.subresource.cache.size</literal></entry>
+                        <entry>&jersey.server.ServerProperties.SUBRESOURCE_LOCATOR_CACHE_AGE;</entry>
+                        <entry><literal>jersey.config.server.subresource.cache.age</literal></entry>
                         <entry>
                             <para>
                                 An integer value that defines the maximum age (in seconds) for cached for sub-resource locator
@@ -538,6 +590,17 @@
                         </entry>
                     </row>
                     <row>
+                        <entry>&jersey.server.ServerProperties.LOCATION_HEADER_RELATIVE_URI_RESOLUTION_RFC7231;</entry>
+                        <entry><literal>jersey.config.server.headers.location.relative.resolution.rfc7231</literal></entry>
+                        <entry>
+                            <para>
+                                If <literal>true</literal> then Jersey will resolve relative URIs in the
+                                <literal>Location</literal> http header against the request URI according to <literal>RFC7231</literal>
+                                (new HTTP Specification)
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
                         <entry>&jersey.server.ServerProperties.LOCATION_HEADER_RELATIVE_URI_RESOLUTION_DISABLED;</entry>
                         <entry><literal>jersey.config.server.headers.location.relative.resolution.disabled</literal></entry>
                         <entry>
@@ -733,11 +796,21 @@
                         </entry>
                     </row>
                     <row>
+                        <entry>&jersey.client.ClientProperties.BACKGROUND_SCHEDULER_THREADPOOL_SIZE;</entry>
+                        <entry><literal>jersey.config.client.backgroundScheduler.threadPoolSize</literal></entry>
+                        <entry>
+                            <para>
+                                Scheduler thread pool size. Default value is not set.
+                                <emphasis>Support is undefined</emphasis>.
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
                         <entry>&jersey.client.ClientProperties.CHUNKED_ENCODING_SIZE;</entry>
                         <entry><literal>jersey.config.client.chunkedEncodingSize</literal></entry>
                         <entry>
                             <para>
-                                Chunked encoding size. Default value is not set.
+                                Chunked encoding size. Default value is  <literal>4096</literal>.
                             </para>
                         </entry>
                     </row>
@@ -886,6 +959,38 @@
                         </entry>
                     </row>
                     <row>
+                        <entry>&jersey.client.ClientProperties.DIGESTAUTH_URI_CACHE_SIZELIMIT;</entry>
+                        <entry><literal>jersey.config.client.digestAuthUriCacheSizeLimit</literal></entry>
+                        <entry>
+                            <para>
+                                The property defines a URI of a HTTP proxy the client connector should use.
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>&jersey.client.ClientProperties.EXPECT_100_CONTINUE;</entry>
+                        <entry><literal>jersey.config.client.request.expect.100.continue.processing</literal></entry>
+                        <entry>
+                            <para>
+                                Allows for HTTP Expect:100-Continue being handled by the HttpUrlConnector (default Jersey
+                                connector). <literal>Since 2.32</literal>
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>&jersey.client.ClientProperties.EXPECT_100_CONTINUE_THRESHOLD_SIZE;</entry>
+                        <entry><literal>jersey.config.client.request.expect.100.continue.threshold.size</literal></entry>
+                        <entry>
+                            <para>
+                                Property for threshold size for content length after which Expect:100-Continue header would be applied
+                                before the main request.
+                                Default threshold size (64kb) after which which Expect:100-Continue header would be applied before
+                                the main request.
+                                <literal>Since 2.32</literal>
+                            </para>
+                        </entry>
+                    </row>
+                    <row>
                         <entry>&jersey.logging.LoggingFeature.LOGGING_FEATURE_LOGGER_NAME_CLIENT;
                         </entry>
                         <entry>
@@ -948,4 +1053,4 @@
             </tgroup>
         </table>
     </section>
-</appendix>
+</appendix>
\ No newline at end of file
diff --git a/docs/src/main/docbook/async.xml b/docs/src/main/docbook/async.xml
index 6d7d082..f496bab 100644
--- a/docs/src/main/docbook/async.xml
+++ b/docs/src/main/docbook/async.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -85,7 +85,7 @@
             when the method returns. Instead, the injected &lit.jaxrs.container.AsyncResponse; instance (that represents the
             suspended client request connection) will be used to explicitly send the response back to the client using some other
             thread. In other words, Jersey runtime knows that when the <literal>asyncGet</literal> method completes, the response
-            to the client may not be ready yet and the processing must be suspended and wait to be explictly resumed with a
+            to the client may not be ready yet and the processing must be suspended and wait to be explicitly resumed with a
             response once it becomes available. Note that the method <literal>asyncGet</literal> returns <literal>void</literal>
             in our example. This is perfectly valid in case of an asynchronous JAX-RS resource method, even for a &jaxrs.GET;
             method, as the response is never returned directly from the resource method as its return value. Instead, the response
@@ -250,7 +250,7 @@
                 In Jersey you can use &jersey.server.ChunkedOutput; to send response to a client in chunks. Chunks are strictly
                 defined pieces of a response body can be marshalled as a separate entities using Jersey/JAX-RS
                 &jaxrs.ext.MessageBodyWriter; providers. A chunk can be String, Long or JAXB bean serialized to XML or JSON or
-                any other dacustom type for which a &lit.jaxrs.ext.MessageBodyWriter; is available.
+                any other defined custom type for which a &lit.jaxrs.ext.MessageBodyWriter; is available.
             </para>
             <para>
                 The resource method
@@ -484,7 +484,7 @@
                 &lit.jersey.client.ChunkedInput; does not know how to distinguish chunks in the byte stream unless being told by
                 the developer. In order to define custom chunks boundaries,
                 the &lit.jersey.client.ChunkedInput; offers possibility to register a &jersey.client.ChunkParser; which
-                reads chunks from the input stream and separates them. Jersey provides several chunk parser implementation and
+                reads chunks from the input stream and separates them. Jersey provides several chunk parser implementations and
                 you can implement your own parser to separate your chunks if you need. In our example above the default parser
                 provided by Jersey is used that separates chunks based on presence of a <literal>\r\n</literal> delimiting
                 character sequence.
diff --git a/docs/src/main/docbook/bean-validation.xml b/docs/src/main/docbook/bean-validation.xml
index e12fe3c..d3b2e68 100644
--- a/docs/src/main/docbook/bean-validation.xml
+++ b/docs/src/main/docbook/bean-validation.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -58,7 +58,7 @@
             </note>
 
             This module depends directly on
-            <link xlink:href="http://www.hibernate.org/subprojects/validator.html">Hibernate Validator</link>
+            <link xlink:href="http://www.hibernate.org/validator/">Hibernate Validator</link>
             which provides a most commonly used implementation of the Bean Validation API spec.
         </para>
         <para>
@@ -242,9 +242,7 @@
         .register( ... );</programlisting>
 
                 <note>
-                    <para>This code snippet has been taken from
-                        <link xlink:href='&jersey.github.examples.uri;/bean-validation-webapp'>Bean Validation example</link>.
-                    </para>
+                    <para>This code snippet is based on CustomConfigValidationTest (from Jersey's source codes)</para>
                 </note>
             </example>
         </para>
@@ -277,7 +275,7 @@
             </para>
             <para>
                 The Bean Validation specification supports the use of <emphasis>constraint annotations</emphasis>
-                as a way of declaratively validating beans, method parameters and method returned values. For example, consider
+                as a way of declarative validating beans, method parameters and method returned values. For example, consider
                 resource class from <xref linkend="bv.example.constraints"/> augmented with constraint annotations.
 
                 <example xml:id="bv.example.constraints">
@@ -723,7 +721,7 @@
 Content-Length: 114
 Content-Type: text/plain
 Vary: Accept
-Server: Jetty(6.1.24)
+Server: Jetty(9.4.28)
 
 Contact with given ID does not exist. (path = ContactCardResource.getContact.&lt;return value&gt;, invalidValue = null)</screen>
                 </example>
@@ -734,7 +732,7 @@
 Content-Length: ...
 Content-Type: text/plain
 Vary: Accept
-Server: Jetty(6.1.24)
+Server: Jetty(9.4.28)
 
 <![CDATA[<div class="validation-errors">
     <div class="validation-error">
@@ -760,7 +758,7 @@
 Content-Length: ...
 Content-Type: text/plain
 Vary: Accept
-Server: Jetty(6.1.24)
+Server: Jetty(9.4.28)
 
 <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
 <validationErrors>
@@ -778,7 +776,7 @@
 Content-Length: 174
 Content-Type: application/json
 Vary: Accept
-Server: Jetty(6.1.24)
+Server: Jetty(9.4.28)
 
 [ {
    "message" : "Contact with given ID does not exist.",
diff --git a/docs/src/main/docbook/cdi.xml b/docs/src/main/docbook/cdi.xml
index 8a38ad1..2f44e69 100644
--- a/docs/src/main/docbook/cdi.xml
+++ b/docs/src/main/docbook/cdi.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2015, 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
@@ -50,7 +50,7 @@
     <section xml:id="cdi.support.existing.containers">
         <title>Containers Known to Work With Jersey CDI Support</title>
         <para>
-          To stick with JAX-RS specification, Jersey has to support JAX-RS/CDI integration in Java EE environment.
+          To stick with JAX-RS specification, Jersey has to support JAX-RS/CDI integration in Java/Jakarta EE environment.
           The two containers supporting JAX-RS/CDI integration out of the box are Oracle GlassFish and Oracle WebLogic application server.
         </para>
         <para>
diff --git a/docs/src/main/docbook/client.xml b/docs/src/main/docbook/client.xml
index b96896e..ffa4bde 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, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -822,12 +822,12 @@
         </para>
         <para>
             To solve injection of a custom type into a client provider instance
-            use &jersey.client.ServiceLocatorClientProvider; to
+            use &jersey.client.InjectionManagerClientProvider; to
             extract &hk2.ServiceLocator; which can return the required injection. The following example shows how to utilize
-            &lit.jersey.client.ServiceLocatorClientProvider;:
+            &lit.jersey.client.InjectionManagerClientProvider;:
         </para>
         <example>
-            <title>ServiceLocatorClientProvider example</title>
+            <title>InjectionManagerClientProvider example</title>
             <programlisting language="java" linenumbering="numbered">public static class MyRequestFilter implements ClientRequestFilter {
     // this injection does not work as filter is registered as an instance:
     // @Inject
@@ -835,11 +835,11 @@
 
     @Override
     public void filter(ClientRequestContext requestContext) throws IOException {
-        // use ServiceLocatorClientProvider to extract HK2 ServiceLocator from request
-        final ServiceLocator locator = ServiceLocatorClientProvider.getServiceLocator(requestContext);
+        // use InjectionManagerClientProvider to extract InjectionManager from request
+        final InjectionManager injectionManager = InjectionManagerClientProvider.getInjectionManager(requestContext);
 
         // and ask for MyInjectedService:
-        final MyInjectedService service = locator.getService(MyInjectedService.class);
+        final MyInjectedService service = injectionManager.getInstance(MyInjectedService.class);
 
         final String name = service.getName();
         ...
@@ -847,8 +847,8 @@
 }</programlisting>
         </example>
         <para>
-            For more information see javadoc of &jersey.client.ServiceLocatorClientProvider;
-            (and javadoc of &jersey.common.ServiceLocatorProvider; which supports common JAX-RS components).
+            For more information see javadoc of &jersey.client.InjectionManagerClientProvider;
+            (and javadoc of &jersey.common.InjectionManagerProvider; which supports common JAX-RS components).
         </para>
     </section>
 
diff --git a/docs/src/main/docbook/declarative-linking.xml b/docs/src/main/docbook/declarative-linking.xml
index 54786c5..2014126 100644
--- a/docs/src/main/docbook/declarative-linking.xml
+++ b/docs/src/main/docbook/declarative-linking.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -57,14 +57,14 @@
             into a container that is already including them:
 
             <programlisting language="xml" linenumbering="unnumbered">&lt;dependency&gt;
-    &lt;groupId&gt;javax.el&lt;/groupId&gt;
-    &lt;artifactId&gt;javax.el-api&lt;/artifactId&gt;
+    &lt;groupId&gt;jakarta.el&lt;/groupId&gt;
+    &lt;artifactId&gt;jakarta.el-api&lt;/artifactId&gt;
     &lt;version&gt;&javax-el.version;&lt;/version&gt;
 &lt;/dependency&gt;</programlisting>
 
             <programlisting language="xml" linenumbering="unnumbered">&lt;dependency&gt;
-    &lt;groupId&gt;org.glassfish.web&lt;/groupId&gt;
-    &lt;artifactId&gt;javax.el&lt;/artifactId&gt;
+    &lt;groupId&gt;org.glassfish&lt;/groupId&gt;
+    &lt;artifactId&gt;jakarta.el&lt;/artifactId&gt;
     &lt;version&gt;&javax-el-impl.version;&lt;/version&gt;
 &lt;/dependency&gt;</programlisting>
 
diff --git a/docs/src/main/docbook/dependencies.xml b/docs/src/main/docbook/dependencies.xml
index e5fb29f..ad40a92 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, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -62,7 +62,7 @@
         <para>
             Jersey is built, assembled and installed using <link xlink:href="http://maven.apache.org/">Apache Maven</link>.
             Non-snapshot Jersey releases are deployed to the
-            <link xlink:href="http://search.maven.org/">Central Maven Repository</link>. Jersey is also being deployed to
+            <link xlink:href="https://search.maven.org/">Central Maven Repository</link>. Jersey is also being deployed to
             <link xlink:href="https://oss.sonatype.org/">Sonatype Maven repositories</link>, which contain also Jersey SNAPSHOT
             versions. In case you would want to test the latest development builds check out the
             <link xlink:href="https://oss.sonatype.org/content/repositories/snapshots/org/glassfish/jersey">
diff --git a/docs/src/main/docbook/deployment.xml b/docs/src/main/docbook/deployment.xml
index 2f97af4..509267b 100644
--- a/docs/src/main/docbook/deployment.xml
+++ b/docs/src/main/docbook/deployment.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -42,7 +42,7 @@
             <para>
                 This chapter is focused on server-side Jersey deployment models. The
                 <link linkend="client">Jersey client runtime</link> does
-                not have any specific container requirements and runs in plain Java SE 6 or higher runtime.
+                not have any specific container requirements and runs in plain Java SE 1.8 or higher runtime.
             </para>
         </note>
     </section>
@@ -1137,6 +1137,19 @@
                     12.1.3 RESTful Web Services Development Guide</link> for details how to enable JAX-RS 2.0 support on
                     WebLogic 12.1.3.
                 </para>
+                <para>
+                    In 10.3.x, a set of pre-built shared libraries were delivered with WebLogic Server to support
+                    Jersey 1.9 and 1.1.5.1 Java API for RESTful Web Services (JAX-RS) Reference Implementations (RIs).
+                    In 12.2.x, WebLogic Server supports Jersey 2.21.x (JAX-RS 2.0 RI) by default. To use the pre-built
+                    shared libraries of 10.3.x, you needed to register them with the WebLogic Server instance, and
+                    modify the web.xml and weblogic.xml deployment descriptors to use the Jersey servlet and reference
+                    the shared libraries, respectively.
+                    In 12.2.x, as WebLogic Server supports Jersey 2.21.x (JAX-RS 2.0 RI) by default, registration as a
+                    shared library with WebLogic Server is no longer required.
+                    Please read through
+                    the <link xlink:href="https://docs.oracle.com/middleware/12213/wls/WLUPG/upgrade_ws.htm#WLUPG331">
+                    Upgrading a 10.3.x RESTful Web Service (JAX-RS) to 12.2.x</link>
+                </para>
             </section>
 
             <section xml:id="deployment.appservers.other">
diff --git a/docs/src/main/docbook/filters.xml b/docs/src/main/docbook/filters.xml
index 18ecee3..267a854 100644
--- a/docs/src/main/docbook/filters.xml
+++ b/docs/src/main/docbook/filters.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -257,7 +257,7 @@
                 To summarize the workflow, for any client request invoked from the client API
                 the client request filters (&jaxrs.client.ClientRequestFilter;)
                 are executed that could manipulate the request.
-                If not aborted, the outcoming request is then physically sent over to the server side
+                If not aborted, the outgoing request is then physically sent over to the server side
                 and once a response is received back from the server the client response
                 filters (&jaxrs.client.ClientResponseFilter;)
                 are executed that might again manipulate the returned response.
@@ -308,7 +308,7 @@
             </example>
         </para>
         <para>
-            The interceptor gets a output stream from the &jaxrs.WriterInterceptorContext; and sets
+            The interceptor gets an output stream from the &jaxrs.WriterInterceptorContext; and sets
             a new one which is a GZIP wrapper of the original output stream. After all interceptors are executed the
             output stream lastly set to the &lit.jaxrs.WriterInterceptorContext; will be used for serialization of the entity. In the
             example above the entity bytes will be written to the GZIPOutputStream which will compress the stream data
@@ -393,7 +393,7 @@
                     a MessageBodyWriter is executed. It wraps the entity output stream with the GZipOutputStream.</listitem>
                 <listitem>Client MessageBodyWriter: message body writer is executed on the client which serializes the entity
                     into the new GZipOutput stream. This stream zips the data and sends it to the "wire".</listitem>
-                <listitem>Server: server receives a request. Data of entity is compressed which means that pure read from
+                <listitem>Server: server receives a request. Data of the entity is compressed which means that pure read from
                     the entity input stream would return compressed data.</listitem>
                 <listitem>Server pre-matching ContainerRequestFilters: ContainerRequestFilters are executed that can manipulate
                     resource method matching process.</listitem>
diff --git a/docs/src/main/docbook/getting-started.xml b/docs/src/main/docbook/getting-started.xml
index 252eb29..8d4e1be 100644
--- a/docs/src/main/docbook/getting-started.xml
+++ b/docs/src/main/docbook/getting-started.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -53,7 +53,7 @@
                     <programlisting language="xml" linenumbering="unnumbered">&lt;snapshotRepository&gt;
                         &lt;id&gt;ossrh&lt;/id&gt;
                     &lt;name&gt;Sonatype Nexus Snapshots&lt;/name&gt;
-                &lt;url&gt;https://oss.sonatype.org/content/repositories/snapshots/&lt;/url&gt;
+                &lt;url&gt;https://jakarta.oss.sonatype.org/content/repositories/snapshots/&lt;/url&gt;
             &lt;/snapshotRepository&gt;</programlisting>
                 </para>
             </note>
@@ -210,10 +210,10 @@
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 34.527s
-[INFO] Finished at: Sun May 26 19:26:24 CEST 2013
-[INFO] Final Memory: 17M/490M
-[INFO] ------------------------------------------------------------------------</screen>
+[INFO] Total time:  7.519 s
+[INFO] Finished at: 2021-01-29T08:16:04+01:00
+[INFO] ------------------------------------------------------------------------
+</screen>
 
             Now that we have verified that the project compiles and that the unit test passes, we can execute the application
             in a standalone mode. To do this, run the following maven command:
@@ -224,7 +224,7 @@
 
             <screen linenumbering="unnumbered">May 26, 2013 8:08:45 PM org.glassfish.grizzly.http.server.NetworkListener start
 INFO: Started listener bound to [localhost:8080]
-May 26, 2013 8:08:45 PM org.glassfish.grizzly.http.server.HttpServer start
+Jan 29, 2021 8:33:02 AM org.glassfish.grizzly.http.server.HttpServer start
 INFO: [HttpServer] Started.
 Jersey app started with WADL available at http://localhost:8080/myapp/application.wadl
 Hit enter to stop it...</screen>
@@ -251,7 +251,6 @@
             <screen language="bash" linenumbering="unnumbered">curl -i http://localhost:8080/myapp/myresource
 HTTP/1.1 200 OK
 Content-Type: text/plain
-Date: Sun, 26 May 2013 18:27:19 GMT
 Content-Length: 7
 
 Got it!</screen>
@@ -267,24 +266,21 @@
             a lot of additional information about the whole communication:
 
             <screen language="bash" linenumbering="unnumbered"><![CDATA[$ curl -v http://localhost:8080/myapp/myresource
-* About to connect() to localhost port 8080 (#0)
-*   Trying ::1...
-* Connection refused
-*   Trying 127.0.0.1...
-* connected
+*   Trying 127.0.0.1:8080...
+* TCP_NODELAY set
 * Connected to localhost (127.0.0.1) port 8080 (#0)
 > GET /myapp/myresource HTTP/1.1
-> User-Agent: curl/7.25.0 (x86_64-apple-darwin11.3.0) libcurl/7.25.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.22
 > Host: localhost:8080
+> User-Agent: curl/7.68.0
 > Accept: */*
 >
+* Mark bundle as not supporting multiuse
 < HTTP/1.1 200 OK
 < Content-Type: text/plain
-< Date: Sun, 26 May 2013 18:29:18 GMT
 < Content-Length: 7
 <
 * Connection #0 to host localhost left intact
-Got it!* Closing connection #0]]></screen>
+Got it!]]></screen>
         </para>
     </section>
 
@@ -341,20 +337,19 @@
 Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
 
 [INFO]
-[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ simple-service-webapp ---
+[INFO] --- maven-war-plugin:2.2:war (default-war) @ simple-service-webapp ---
 [INFO] Packaging webapp
 [INFO] Assembling webapp [simple-service-webapp] in [.../simple-service-webapp/target/simple-service-webapp]
 [INFO] Processing war project
 [INFO] Copying webapp resources [.../simple-service-webapp/src/main/webapp]
-[INFO] Webapp assembled in [75 msecs]
+[INFO] Webapp assembled in [110 msecs]
 [INFO] Building war: .../simple-service-webapp/target/simple-service-webapp.war
 [INFO] WEB-INF/web.xml already added, skipping
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time: 9.067s
-[INFO] Finished at: Sun May 26 21:07:44 CEST 2013
-[INFO] Final Memory: 17M/490M
+[INFO] Total time:  4.520 s
+[INFO] Finished at: 2021-01-29T08:42:11+01:00
 [INFO] ------------------------------------------------------------------------</screen>
 
             Now you are ready to take the packaged WAR (located under <literal>./target/simple-service-webapp.war</literal>)
@@ -428,42 +423,41 @@
     [INFO] Assembling webapp [simple-heroku-webapp] in [.../simple-heroku-webapp/target/simple-heroku-webapp]
     [INFO] Processing war project
     [INFO] Copying webapp resources [.../simple-heroku-webapp/src/main/webapp]
-    [INFO] Webapp assembled in [57 msecs]
+    [INFO] Webapp assembled in [122 msecs]
     [INFO] Building war: .../simple-heroku-webapp/target/simple-heroku-webapp.war
     [INFO] WEB-INF/web.xml already added, skipping
     [INFO]
     [INFO] --- maven-dependency-plugin:2.8:copy-dependencies (copy-dependencies) @ simple-heroku-webapp ---
-    [INFO] Copying hk2-locator-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/hk2-locator-2.2.0-b21.jar
-    [INFO] Copying jetty-security-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-security-9.0.6.v20130930.jar
-    [INFO] Copying asm-all-repackaged-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/asm-all-repackaged-2.2.0-b21.jar
-    [INFO] Copying jersey-common-2.5.jar to .../simple-heroku-webapp/target/dependency/jersey-common-2.5.jar
-    [INFO] Copying validation-api-1.1.0.Final.jar to .../simple-heroku-webapp/target/dependency/validation-api-1.1.0.Final.jar
-    [INFO] Copying jetty-webapp-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-webapp-9.0.6.v20130930.jar
-    [INFO] Copying jersey-container-servlet-2.5.jar to .../simple-heroku-webapp/target/dependency/jersey-container-servlet-2.5.jar
-    [INFO] Copying cglib-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/cglib-2.2.0-b21.jar
-    [INFO] Copying osgi-resource-locator-1.0.1.jar to .../simple-heroku-webapp/target/dependency/osgi-resource-locator-1.0.1.jar
-    [INFO] Copying hk2-utils-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/hk2-utils-2.2.0-b21.jar
-    [INFO] Copying hk2-api-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/hk2-api-2.2.0-b21.jar
-    [INFO] Copying jetty-io-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-io-9.0.6.v20130930.jar
-    [INFO] Copying jetty-server-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-server-9.0.6.v20130930.jar
-    [INFO] Copying jetty-util-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-util-9.0.6.v20130930.jar
-    [INFO] Copying jersey-client-2.5.jar to .../simple-heroku-webapp/target/dependency/jersey-client-2.5.jar
-    [INFO] Copying jetty-http-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-http-9.0.6.v20130930.jar
-    [INFO] Copying guava-14.0.1.jar to .../simple-heroku-webapp/target/dependency/guava-14.0.1.jar
-    [INFO] Copying jetty-xml-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-xml-9.0.6.v20130930.jar
-    [INFO] Copying jersey-server-2.5.jar to .../simple-heroku-webapp/target/dependency/jersey-server-2.5.jar
-    [INFO] Copying jersey-container-servlet-core-2.5.jar to .../simple-heroku-webapp/target/dependency/jersey-container-servlet-core-2.5.jar
-    [INFO] Copying javax.ws.rs-api-2.0.jar to .../simple-heroku-webapp/target/dependency/javax.ws.rs-api-2.0.jar
-    [INFO] Copying jetty-servlet-9.0.6.v20130930.jar to .../simple-heroku-webapp/target/dependency/jetty-servlet-9.0.6.v20130930.jar
-    [INFO] Copying javax.inject-2.2.0-b21.jar to .../simple-heroku-webapp/target/dependency/javax.inject-2.2.0-b21.jar
+    [INFO] Copying jetty-util-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-util-9.4.28.v20200408.jar
+    [INFO] Copying jersey-hk2-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-hk2-2.33.jar
+    [INFO] Copying javassist-3.25.0-GA.jar to .../simple-heroku-webapp/target/dependency/javassist-3.25.0-GA.jar
+    [INFO] Copying jakarta.inject-2.6.1.jar to .../simple-heroku-webapp/target/dependency/jakarta.inject-2.6.1.jar
+    [INFO] Copying hk2-locator-2.6.1.jar to .../simple-heroku-webapp/target/dependency/hk2-locator-2.6.1.jar
+    [INFO] Copying hk2-utils-2.6.1.jar to .../simple-heroku-webapp/target/dependency/hk2-utils-2.6.1.jar
+    [INFO] Copying hk2-api-2.6.1.jar to .../simple-heroku-webapp/target/dependency/hk2-api-2.6.1.jar
+    [INFO] Copying jetty-webapp-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-webapp-9.4.28.v20200408.jar
+    [INFO] Copying jakarta.annotation-api-1.3.5.jar to .../simple-heroku-webapp/target/dependency/jakarta.annotation-api-1.3.5.jar
+    [INFO] Copying jersey-server-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-server-2.33.jar
+    [INFO] Copying jakarta.ws.rs-api-2.1.6.jar to .../simple-heroku-webapp/target/dependency/jakarta.ws.rs-api-2.1.6.jar
+    [INFO] Copying osgi-resource-locator-1.0.3.jar to .../simple-heroku-webapp/target/dependency/osgi-resource-locator-1.0.3.jar
+    [INFO] Copying aopalliance-repackaged-2.6.1.jar to .../simple-heroku-webapp/target/dependency/aopalliance-repackaged-2.6.1.jar
+    [INFO] Copying jetty-servlet-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-servlet-9.4.28.v20200408.jar
+    [INFO] Copying jetty-xml-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-xml-9.4.28.v20200408.jar
+    [INFO] Copying jersey-container-servlet-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-container-servlet-2.33.jar
+    [INFO] Copying jetty-io-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-io-9.4.28.v20200408.jar
+    [INFO] Copying jetty-security-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-security-9.4.28.v20200408.jar
+    [INFO] Copying jetty-server-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-server-9.4.28.v20200408.jar
     [INFO] Copying javax.servlet-3.0.0.v201112011016.jar to .../simple-heroku-webapp/target/dependency/javax.servlet-3.0.0.v201112011016.jar
-    [INFO] Copying javax.annotation-api-1.2.jar to .../simple-heroku-webapp/target/dependency/javax.annotation-api-1.2.jar
+    [INFO] Copying jersey-common-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-common-2.33.jar
+    [INFO] Copying jakarta.validation-api-2.0.2.jar to .../simple-heroku-webapp/target/dependency/jakarta.validation-api-2.0.2.jar
+    [INFO] Copying jersey-container-servlet-core-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-container-servlet-core-2.33.jar
+    [INFO] Copying jersey-client-2.33.jar to .../simple-heroku-webapp/target/dependency/jersey-client-2.33.jar
+    [INFO] Copying jetty-http-9.4.28.v20200408.jar to .../simple-heroku-webapp/target/dependency/jetty-http-9.4.28.v20200408.jar
     [INFO] ------------------------------------------------------------------------
     [INFO] BUILD SUCCESS
     [INFO] ------------------------------------------------------------------------
-    [INFO] Total time: 4.401s
-    [INFO] Finished at: Mon Dec 09 20:19:06 CET 2013
-    [INFO] Final Memory: 20M/246M
+    [INFO] Total time:  12.009 s
+    [INFO] Finished at: 2021-01-29T08:48:04+01:00
     [INFO] ------------------------------------------------------------------------</screen>
 
             Now that you know everything went as expected you are ready to:
@@ -540,81 +534,102 @@
     Total 21 (delta 0), reused 0 (delta 0)
 
     -----> Java app detected
-    -----> Installing OpenJDK 1.7... done
-    -----> Installing Maven 3.0.3... done
+    -----> Installing OpenJDK 1.8... done
+    -----> Installing Maven 3.6.3... done
     -----> Installing settings.xml... done
     -----> executing /app/tmp/cache/.maven/bin/mvn -B -Duser.home=/tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd -Dmaven.repo.local=/app/tmp/cache/.m2/repository -s /app/tmp/cache/.m2/settings.xml -DskipTests=true clean install
-           [INFO] Scanning for projects...
-           [INFO]
-           [INFO] ------------------------------------------------------------------------
-           [INFO] Building simple-heroku-webapp 1.0-SNAPSHOT
-           [INFO] ------------------------------------------------------------------------
-           [INFO]
-           [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ simple-heroku-webapp ---
-           [INFO]
-           [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ simple-heroku-webapp ---
-           [INFO] Using 'UTF-8' encoding to copy filtered resources.
-           [INFO] skip non existing resourceDirectory /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/main/resources
-           [INFO]
-           [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ simple-heroku-webapp ---
-           [INFO] Compiling 2 source files to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/classes
-           [INFO]
-           [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ simple-heroku-webapp ---
-           [INFO] Using 'UTF-8' encoding to copy filtered resources.
-           [INFO] skip non existing resourceDirectory /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/test/resources
-           [INFO]
-           [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ simple-heroku-webapp ---
-           [INFO] Compiling 1 source file to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/test-classes
-           [INFO]
-           [INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ simple-heroku-webapp ---
-           [INFO] Tests are skipped.
-           [INFO]
-           [INFO] --- maven-war-plugin:2.1.1:war (default-war) @ simple-heroku-webapp ---
-           [INFO] Packaging webapp
-           [INFO] Assembling webapp [simple-heroku-webapp] in [/tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp]
-           [INFO] Processing war project
-           [INFO] Copying webapp resources [/tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/main/webapp]
-           [INFO] Webapp assembled in [88 msecs]
-           [INFO] Building war: /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp.war
-           [INFO] WEB-INF/web.xml already added, skipping
-           [INFO]
-           [INFO] --- maven-dependency-plugin:2.1:copy-dependencies (copy-dependencies) @ simple-heroku-webapp ---
-           [INFO] Copying guava-14.0.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/guava-14.0.1.jar
-           [INFO] Copying javax.annotation-api-1.2.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javax.annotation-api-1.2.jar
-           [INFO] Copying validation-api-1.1.0.Final.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/validation-api-1.1.0.Final.jar
-           [INFO] Copying javax.ws.rs-api-2.0.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javax.ws.rs-api-2.0.jar
-           [INFO] Copying jetty-http-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-http-9.0.6.v20130930.jar
-           [INFO] Copying jetty-io-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-io-9.0.6.v20130930.jar
-           [INFO] Copying jetty-security-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-security-9.0.6.v20130930.jar
-           [INFO] Copying jetty-server-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-server-9.0.6.v20130930.jar
-           [INFO] Copying jetty-servlet-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-servlet-9.0.6.v20130930.jar
-           [INFO] Copying jetty-util-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-util-9.0.6.v20130930.jar
-           [INFO] Copying jetty-webapp-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-webapp-9.0.6.v20130930.jar
-           [INFO] Copying jetty-xml-9.0.6.v20130930.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-xml-9.0.6.v20130930.jar
-           [INFO] Copying javax.servlet-3.0.0.v201112011016.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javax.servlet-3.0.0.v201112011016.jar
-           [INFO] Copying hk2-api-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-api-2.2.0-b21.jar
-           [INFO] Copying hk2-locator-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-locator-2.2.0-b21.jar
-           [INFO] Copying hk2-utils-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-utils-2.2.0-b21.jar
-           [INFO] Copying osgi-resource-locator-1.0.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/osgi-resource-locator-1.0.1.jar
-           [INFO] Copying asm-all-repackaged-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/asm-all-repackaged-2.2.0-b21.jar
-           [INFO] Copying cglib-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/cglib-2.2.0-b21.jar
-           [INFO] Copying javax.inject-2.2.0-b21.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javax.inject-2.2.0-b21.jar
-           [INFO] Copying jersey-container-servlet-2.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-container-servlet-2.5.jar
-           [INFO] Copying jersey-container-servlet-core-2.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-container-servlet-core-2.5.jar
-           [INFO] Copying jersey-client-2.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-client-2.5.jar
-           [INFO] Copying jersey-common-2.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-common-2.5.jar
-           [INFO] Copying jersey-server-2.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-server-2.5.jar
-           [INFO]
-           [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ simple-heroku-webapp ---
-           [INFO] Installing /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp.war to /app/tmp/cache/.m2/repository/com/example/simple-heroku-webapp/1.0-SNAPSHOT/simple-heroku-webapp-1.0-SNAPSHOT.war
-           [INFO] Installing /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/pom.xml to /app/tmp/cache/.m2/repository/com/example/simple-heroku-webapp/1.0-SNAPSHOT/simple-heroku-webapp-1.0-SNAPSHOT.pom
-           [INFO] ------------------------------------------------------------------------
-           [INFO] BUILD SUCCESS
-           [INFO] ------------------------------------------------------------------------
-           [INFO] Total time: 45.861s
-           [INFO] Finished at: Mon Dec 09 19:51:34 UTC 2013
-           [INFO] Final Memory: 17M/514M
-           [INFO] ------------------------------------------------------------------------
+    [INFO] Scanning for projects...
+    [INFO]
+    [INFO] ------------------ com.example:simple-heroku-webapp ------------------
+    [INFO] Building simple-heroku-webapp 1.0-SNAPSHOT
+    [INFO] --------------------------------[ war ]---------------------------------
+    [INFO]
+    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ simple-heroku-webapp ---
+    [INFO] Deleting /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target
+    [INFO]
+    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ simple-heroku-webapp ---
+    [INFO] Using 'UTF-8' encoding to copy filtered resources.
+    [INFO] skip non existing resourceDirectory /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/main/resources
+    [INFO]
+    [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ simple-heroku-webapp ---
+    [INFO] Compiling 2 source files to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/classes
+    [INFO]
+    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ simple-heroku-webapp ---
+    [INFO] Using 'UTF-8' encoding to copy filtered resources.
+    [INFO] skip non existing resourceDirectory /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/test/resources
+    [INFO]
+    [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ simple-heroku-webapp ---
+    [INFO] Compiling 1 source file to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/test-classes
+    [INFO]
+    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ simple-heroku-webapp ---
+    [INFO] Surefire report directory: /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/surefire-reports
+
+    -------------------------------------------------------
+    T E S T S
+    -------------------------------------------------------
+    Running com.example.MyResourceTest
+    Jan 29, 2021 9:13:20 AM org.glassfish.jersey.test.grizzly.GrizzlyTestContainerFactory$GrizzlyTestContainer <init>
+    INFO: Creating GrizzlyTestContainer configured at the base URI http://localhost:9998/
+    Jan 29, 2021 9:13:20 AM org.glassfish.jersey.server.wadl.WadlFeature configure
+    WARNING: JAXBContext implementation could not be found. WADL feature is disabled.
+    Jan 29, 2021 9:13:21 AM org.glassfish.grizzly.http.server.NetworkListener start
+    INFO: Started listener bound to [localhost:9998]
+    Jan 29, 2021 9:13:21 AM org.glassfish.grizzly.http.server.HttpServer start
+    INFO: [HttpServer] Started.
+    Jan 29, 2021 9:13:21 AM org.glassfish.grizzly.http.server.NetworkListener shutdownNow
+    INFO: Stopped listener bound to [localhost:9998]
+    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.476 sec
+
+    Results :
+
+    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
+
+    [INFO]
+    [INFO] --- maven-war-plugin:2.2:war (default-war) @ simple-heroku-webapp ---
+    [INFO] Packaging webapp
+    [INFO] Assembling webapp [simple-heroku-webapp] in [/tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp]
+    [INFO] Processing war project
+    [INFO] Copying webapp resources [/tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/src/main/webapp]
+    [INFO] Webapp assembled in [115 msecs]
+    [INFO] Building war: /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp.war
+    [INFO] WEB-INF/web.xml already added, skipping
+    [INFO]
+    [INFO] --- maven-dependency-plugin:2.8:copy-dependencies (copy-dependencies) @ simple-heroku-webapp ---
+    [INFO] Copying jetty-util-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-util-9.4.28.v20200408.jar
+    [INFO] Copying jersey-hk2-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-hk2-2.33.jar
+    [INFO] Copying javassist-3.25.0-GA.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javassist-3.25.0-GA.jar
+    [INFO] Copying jakarta.inject-2.6.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jakarta.inject-2.6.1.jar
+    [INFO] Copying hk2-locator-2.6.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-locator-2.6.1.jar
+    [INFO] Copying hk2-utils-2.6.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-utils-2.6.1.jar
+    [INFO] Copying hk2-api-2.6.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/hk2-api-2.6.1.jar
+    [INFO] Copying jetty-webapp-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-webapp-9.4.28.v20200408.jar
+    [INFO] Copying jakarta.annotation-api-1.3.5.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jakarta.annotation-api-1.3.5.jar
+    [INFO] Copying jersey-server-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-server-2.33.jar
+    [INFO] Copying jakarta.ws.rs-api-2.1.6.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jakarta.ws.rs-api-2.1.6.jar
+    [INFO] Copying osgi-resource-locator-1.0.3.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/osgi-resource-locator-1.0.3.jar
+    [INFO] Copying aopalliance-repackaged-2.6.1.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/aopalliance-repackaged-2.6.1.jar
+    [INFO] Copying jetty-servlet-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-servlet-9.4.28.v20200408.jar
+    [INFO] Copying jetty-xml-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-xml-9.4.28.v20200408.jar
+    [INFO] Copying jersey-container-servlet-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-container-servlet-2.33.jar
+    [INFO] Copying jetty-io-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-io-9.4.28.v20200408.jar
+    [INFO] Copying jetty-security-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-security-9.4.28.v20200408.jar
+    [INFO] Copying jetty-server-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-server-9.4.28.v20200408.jar
+    [INFO] Copying javax.servlet-3.0.0.v201112011016.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/javax.servlet-3.0.0.v201112011016.jar
+    [INFO] Copying jersey-common-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-common-2.33.jar
+    [INFO] Copying jakarta.validation-api-2.0.2.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jakarta.validation-api-2.0.2.jar
+    [INFO] Copying jersey-container-servlet-core-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-container-servlet-core-2.33.jar
+    [INFO] Copying jersey-client-2.33.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jersey-client-2.33.jar
+    [INFO] Copying jetty-http-9.4.28.v20200408.jar to /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/dependency/jetty-http-9.4.28.v20200408.jar
+    [INFO]
+    [INFO] --- maven-install-plugin:2.4:install (default-install) @ simple-heroku-webapp ---
+    [INFO] Installing /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/target/simple-heroku-webapp.war to /app/tmp/cache/.m2/repository/com/example/simple-heroku-webapp/1.0-SNAPSHOT/simple-heroku-webapp-1.0-SNAPSHOT.war
+    [INFO] Installing /tmp/build_992cc747-26d6-4800-bdb1-add47b9583cd/pom.xml to /app/tmp/cache/.m2/repository/com/example/simple-heroku-webapp/1.0-SNAPSHOT/simple-heroku-webapp-1.0-SNAPSHOT.pom
+    [INFO] ------------------------------------------------------------------------
+    [INFO] BUILD SUCCESS
+    [INFO] ------------------------------------------------------------------------
+    [INFO] Total time:  5.857 s
+    [INFO] Finished at: 2021-01-29T09:13:23+01:00
+    [INFO] ------------------------------------------------------------------------
     -----> Discovering process types
            Procfile declares types -> web
 
diff --git a/docs/src/main/docbook/how-to-build.xml b/docs/src/main/docbook/how-to-build.xml
index 368dc57..db15959 100644
--- a/docs/src/main/docbook/how-to-build.xml
+++ b/docs/src/main/docbook/how-to-build.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -64,8 +64,8 @@
     <section xml:id="building">
         <title>Building the Source</title>
         <para>
-            Jersey source code requires Java SE 7 or higher. The build is based on Maven.
-            Maven 3.1 or higher is highly recommended. Also it is recommended you use the following
+            Jersey source code requires Java SE 8 or higher. The build is based on Maven.
+            Maven 3.6.3 or higher is highly recommended. Also it is recommended you use the following
             Maven options when building the workspace (can be set in <literal>MAVEN_OPTS</literal> environment
             variable):
             <programlisting language="bash" linenumbering="unnumbered">-Xmx1048m -XX:PermSize=64M -XX:MaxPermSize=128M</programlisting>
@@ -74,7 +74,7 @@
             It is recommended to build all of Jersey after you cloned the source code repository.
             To do that execute the following commands in the directory where jersey source repository
             was cloned (typically the directory named "jersey"):
-            <programlisting language="bash" linenumbering="unnumbered">mvn -Dmaven.test.skip=true clean install</programlisting>
+            <programlisting language="bash" linenumbering="unnumbered">mvn -Dmaven.test.skip=true clean install -DskipTests</programlisting>
             This command will build Jersey, but skip the test execution.
             If you don't want to skip the tests, execute the following instead:
             <programlisting language="bash" linenumbering="unnumbered">mvn clean install</programlisting>
@@ -88,11 +88,13 @@
             Jersey contains many tests. Unit tests are in the individual Jersey modules,
             integration and end-to-end tests are in <literal>jersey/tests/e2e</literal> directory.
             You can run tests related to a particular area using the following command:
-            <programlisting language="bash" linenumbering="unnumbered">mvn -Dtest=&lt;pattern&gt; test</programlisting>
+            <programlisting language="bash" linenumbering="unnumbered">mvn -Dtest=&lt;pattern&gt; test -pl :[modulename]</programlisting>
             where
             <literal>pattern</literal>
             may be a comma separated set of names matching tests classes or individual methods (like
             <literal>LinkTest#testDelimiters</literal>).
+            And [modulename] is name of a module from which tests are called. If module does not contain those tests
+            build failure (as no tests run) occurs.
         </para>
     </section>
     <section xml:id="netbeans-build">
diff --git a/docs/src/main/docbook/jaxrs-resources.xml b/docs/src/main/docbook/jaxrs-resources.xml
index b0c5e98..c351c1f 100644
--- a/docs/src/main/docbook/jaxrs-resources.xml
+++ b/docs/src/main/docbook/jaxrs-resources.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -113,11 +113,14 @@
                 particular regular expression, which overrides the default regular
                 expression, "[^/]+", for example:
                 <programlisting language="java">@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]*}")</programlisting>
-                In this type of example the username variable will only match user names that begin with one upper or lower case letter and zero or more alpha numeric characters and the underscore character. If a user name does not match that a 404 (Not Found) response will occur.
+                In this type of example the username variable will only match user names that begin with one upper or
+                lower case letter and zero or more alpha numeric characters and the underscore character. If a user name
+                does not match that a 404 (Not Found) response will occur.
             </para>
 
-            <para>A &jaxrs.Path; value may or may not begin with a '/', it makes no difference. Likewise, by default, a &jaxrs.Path; value may or may not end in a '/', it makes no difference, and thus request URLs that end or do not end in a '/' will both
-                be matched.
+            <para>A &jaxrs.Path; value may or may not begin with a '/', it makes no difference. Likewise, by default,
+                a &jaxrs.Path; value may or may not end in a '/', it makes no difference, and thus request URLs that
+                end or do not end in a '/' will both be matched.
             </para>
         </section>
 
diff --git a/docs/src/main/docbook/jersey.ent b/docs/src/main/docbook/jersey.ent
index fd87f28..da6a05d 100644
--- a/docs/src/main/docbook/jersey.ent
+++ b/docs/src/main/docbook/jersey.ent
@@ -36,6 +36,8 @@
 <!--<!ENTITY repository "$repository">-->
 <!ENTITY src.branch "$src.branch">
 <!ENTITY version "$version">
+<!ENTITY smallrye.version "1.5.0">
+<!ENTITY helidon.version "1.0.3">
 
 <!-- External Path and Link Base Entities -->
 
@@ -57,6 +59,7 @@
 <!ENTITY jaxrs.javadoc.uri "https://eclipse-ee4j.github.io/jaxrs-api/apidocs/2.1.6/javax/ws/rs">
 <!ENTITY jaxrs21.javadoc.uri "https://eclipse-ee4j.github.io/jaxrs-api/apidocs/2.1.6/javax/ws/rs">
 <!ENTITY jsonb.javadoc.uri "https://javaee.github.io/javaee-spec/javadocs/javax/json/bind">
+<!ENTITY jersey.documentation.uri "https://eclipse-ee4j.github.io/jersey.github.io">
 
 <!ENTITY jersey.ext.bean-validation.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-bean-validation/dependencies.html'>jersey-bean-validation</link>" >
 <!ENTITY jersey.ext.declarative-linking.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-declarative-linking/dependencies.html'>jersey-declarative-linking</link>" >
@@ -77,14 +80,14 @@
 <!ENTITY jersey.ext.mvc-jsp.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-mvc-jsp/dependencies.html'>jersey-mvc-jsp</link>" >
 <!ENTITY jersey.ext.mvc-mustache.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-mvc-mustache/dependencies.html'>jersey-mvc-mustache</link>" >
 <!ENTITY jersey.ext.spring4.deps.link "<link xlink:href='&jersey.project-info.uri.prefix;/jersey-spring4/dependencies.html'>jersey-spring4</link>" >
-<!ENTITY jersey.docs.root.uri "https://eclipse-ee4j.github.io/jersey.github.io/documentation/&docs.version;">
+<!ENTITY jersey.docs.root.uri "&jersey.documentation.uri;/documentation/&docs.version;">
 <!ENTITY jersey.docs.index.uri "&jersey.docs.root.uri;/index.html">
 <!ENTITY jersey.github.examples.uri "&jersey.github.release.uri;/examples">
 <!ENTITY jersey.github.base.uri "https://github.com/eclipse-ee4j/jersey/tree">
 <!ENTITY jersey.github.release.uri "&jersey.github.base.uri;/&src.branch;">
-<!ENTITY jersey.javadoc.root.uri "https://eclipse-ee4j.github.io/jersey.github.io/apidocs/&apidocs.version;/jersey">
+<!ENTITY jersey.javadoc.root.uri "&jersey.documentation.uri;/apidocs/&apidocs.version;/jersey">
 <!ENTITY jersey.javadoc.uri.prefix "&jersey.javadoc.root.uri;/org/glassfish/jersey">
-<!ENTITY jersey.project-info.uri.prefix "https://eclipse-ee4j.github.io/jersey.github.io/project-info/&version;/jersey/project">
+<!ENTITY jersey.project-info.uri.prefix "&jersey.documentation.uri;/project-info/&version;/jersey/project">
 <!ENTITY jee.javadoc.uri "http://docs.oracle.com/javaee/7/api">
 <!ENTITY jdk6.javadoc.uri "http://docs.oracle.com/javase/6/docs/api">
 <!ENTITY jdk7.javadoc.uri "http://docs.oracle.com/javase/7/docs/api">
@@ -94,7 +97,7 @@
 <!ENTITY jsr166.javadoc.uri "http://gee.cs.oswego.edu/dl/jsr166/dist/jsr166edocs/">
 <!ENTITY jsr311.link "<link xlink:href='&jsr.uri.prefix;311'>JSR 311</link>">
 <!ENTITY jsr315.link "<link xlink:href='&jsr.uri.prefix;315'>JSR 315</link>">
-<!ENTITY maven.central.repo.link "<link xlink:href='http://search.maven.org/'>Central Maven Repository</link>">
+<!ENTITY maven.central.repo.link "<link xlink:href='https://search.maven.org/'>Central Maven Repository</link>">
 <!ENTITY maven.link "<link xlink:href='http://maven.apache.org/'>Apache Maven</link>">
 <!ENTITY maven.java.net.releases.link "https://maven.java.net/content/repositories/releases/">
 <!ENTITY rxjava.javadoc.uri "http://reactivex.io/RxJava/javadoc/">
@@ -300,6 +303,7 @@
 <!ENTITY jersey.client.ClientConfig "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientConfig.html'>ClientConfig</link>">
 <!ENTITY jersey.client.ClientProperties "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html'>ClientProperties</link>">
 <!ENTITY jersey.client.ClientProperties.ASYNC_THREADPOOL_SIZE "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#ASYNC_THREADPOOL_SIZE'>ClientProperties.ASYNC_THREADPOOL_SIZE</link>" >
+<!ENTITY jersey.client.ClientProperties.BACKGROUND_SCHEDULER_THREADPOOL_SIZE "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#BACKGROUND_SCHEDULER_THREADPOOL_SIZE'>ClientProperties.BACKGROUND_SCHEDULER_THREADPOOL_SIZE</link>" >
 <!ENTITY jersey.client.ClientProperties.BUFFER_RESPONSE_ENTITY_ON_EXCEPTION "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#BUFFER_RESPONSE_ENTITY_ON_EXCEPTION'>ClientProperties.BUFFER_RESPONSE_ENTITY_ON_EXCEPTION</link>" >
 <!ENTITY jersey.client.ClientProperties.CHUNKED_ENCODING_SIZE "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#CHUNKED_ENCODING_SIZE'>ClientProperties.CHUNKED_ENCODING_SIZE</link>" >
 <!ENTITY jersey.client.ClientProperties.CONNECT_TIMEOUT "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#CONNECT_TIMEOUT'>ClientProperties.CONNECT_TIMEOUT</link>" >
@@ -317,6 +321,9 @@
 <!ENTITY jersey.client.ClientProperties.REQUEST_ENTITY_PROCESSING "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#REQUEST_ENTITY_PROCESSING'>ClientProperties.REQUEST_ENTITY_PROCESSING</link>" >
 <!ENTITY jersey.client.ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#SUPPRESS_HTTP_COMPLIANCE_VALIDATION'>ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION</link>" >
 <!ENTITY jersey.client.ClientProperties.USE_ENCODING "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#USE_ENCODING'>ClientProperties.USE_ENCODING</link>" >
+<!ENTITY jersey.client.ClientProperties.DIGESTAUTH_URI_CACHE_SIZELIMIT "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#DIGESTAUTH_URI_CACHE_SIZELIMIT'>ClientProperties.DIGESTAUTH_URI_CACHE_SIZELIMIT</link>" >
+<!ENTITY jersey.client.ClientProperties.EXPECT_100_CONTINUE "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#EXPECT_100_CONTINUE'>ClientProperties.EXPECT_100_CONTINUE</link>" >
+<!ENTITY jersey.client.ClientProperties.EXPECT_100_CONTINUE_THRESHOLD_SIZE "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientProperties.html#EXPECT_100_CONTINUE_THRESHOLD_SIZE'>ClientProperties.EXPECT_100_CONTINUE_THRESHOLD_SIZE</link>" >
 <!ENTITY jersey.client.ClientLifecycleListener "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ClientLifecycleListener.html'>ClientLifecycleListener</link>">
 <!ENTITY jersey.client.Connector "<link xlink:href='&jersey.javadoc.uri.prefix;/client/spi/Connector.html'>Connector</link>">
 <!ENTITY jersey.client.ConnectorProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/client/spi/ConnectorProvider.html'>ConnectorProvider</link>">
@@ -327,7 +334,7 @@
 <!ENTITY jersey.client.HttpUrlConnectorProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/client/HttpUrlConnector.html'>HttpUrlConnectorProvider</link>">
 <!ENTITY jersey.client.HttpUrlConnectorProvider.SET_METHOD_WORKAROUND "<link xlink:href='&jersey.javadoc.uri.prefix;/client/HttpUrlConnectorProvider.html#SET_METHOD_WORKAROUND'>HttpUrlConnector.SET_METHOD_WORKAROUND</link>" >
 <!ENTITY jersey.client.HttpUrlConnectorProvider.USE_FIXED_LENGTH_STREAMING "<link xlink:href='&jersey.javadoc.uri.prefix;/client/HttpUrlConnectorProvider.html#USE_FIXED_LENGTH_STREAMING'>HttpUrlConnectorProvider.USE_FIXED_LENGTH_STREAMING</link>">
-<!ENTITY jersey.client.ServiceLocatorClientProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/client/ServiceLocatorClientProvider.html'>ServiceLocatorClientProvider</link>">
+<!ENTITY jersey.client.InjectionManagerClientProvider "<link xlink:href='&jersey.javadoc.uri.prefix;/client/InjectionManagerClientProvider.html'>InjectionManagerClientProvider</link>">
 <!ENTITY jersey.client.oauth1.AccessToken "<link xlink:href='&jersey.javadoc.uri.prefix;/client/oauth1/AccessToken.html'>AccessToken</link>">
 <!ENTITY jersey.client.oauth1.ConsumerCredentials "<link xlink:href='&jersey.javadoc.uri.prefix;/client/oauth1/ConsumerCredentials.html'>ConsumerCredentials</link>">
 <!ENTITY jersey.client.oauth1.OAuth1AuthorizationFlow "<link xlink:href='&jersey.javadoc.uri.prefix;/client/oauth1/OAuth1AuthorizationFlow.html'>OAuth1AuthorizationFlow</link>">
@@ -341,11 +348,23 @@
 <!ENTITY jersey.client.oauth2.TokenResult "<link xlink:href='&jersey.javadoc.uri.prefix;/client/oauth2/TokenResult.html'>TokenResult</link>">
 <!ENTITY jersey.common.Beta "<link xlink:href='&jersey.javadoc.uri.prefix;/Beta.html'>Beta</link>">
 <!ENTITY jersey.common.CommonProperties "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html'>CommonProperties</link>">
+<!ENTITY jersey.common.CommonProperties.ALLOW_SYSTEM_PROPERTIES_PROVIDER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#ALLOW_SYSTEM_PROPERTIES_PROVIDER'>CommonProperties.ALLOW_SYSTEM_PROPERTIES_PROVIDER</link>" >
 <!ENTITY jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#FEATURE_AUTO_DISCOVERY_DISABLE'>CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE</link>" >
+<!ENTITY jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_CLIENT "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#FEATURE_AUTO_DISCOVERY_DISABLE_CLIENT'>CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_CLIENT</link>" >
+<!ENTITY jersey.common.CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_SERVER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#FEATURE_AUTO_DISCOVERY_DISABLE_SERVER'>CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_SERVER</link>" >
 <!ENTITY jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#JSON_PROCESSING_FEATURE_DISABLE'>CommonProperties.JSON_PROCESSING_FEATURE_DISABLE</link>" >
+<!ENTITY jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_CLIENT "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#JSON_PROCESSING_FEATURE_DISABLE_CLIENT'>CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_CLIENT</link>" >
+<!ENTITY jersey.common.CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_SERVER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#JSON_PROCESSING_FEATURE_DISABLE_SERVER'>CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_SERVER</link>" >
 <!ENTITY jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#METAINF_SERVICES_LOOKUP_DISABLE'>CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE</link>" >
+<!ENTITY jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_CLIENT "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#METAINF_SERVICES_LOOKUP_DISABLE_CLIENT'>CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_CLIENT</link>" >
+<!ENTITY jersey.common.CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_SERVER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#METAINF_SERVICES_LOOKUP_DISABLE_SERVER'>CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_SERVER</link>" >
 <!ENTITY jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#MOXY_JSON_FEATURE_DISABLE'>CommonProperties.MOXY_JSON_FEATURE_DISABLE</link>" >
+<!ENTITY jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE_CLIENT "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#MOXY_JSON_FEATURE_DISABLE_CLIENT'>CommonProperties.MOXY_JSON_FEATURE_DISABLE_CLIENT</link>" >
+<!ENTITY jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE_SERVER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#MOXY_JSON_FEATURE_DISABLE_SERVER'>CommonProperties.MOXY_JSON_FEATURE_DISABLE_SERVER</link>" >
 <!ENTITY jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#OUTBOUND_CONTENT_LENGTH_BUFFER'>CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER</link>" >
+<!ENTITY jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_CLIENT "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#OUTBOUND_CONTENT_LENGTH_BUFFER_CLIENT'>CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_CLIENT</link>" >
+<!ENTITY jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER'>CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER</link>" >
+<!ENTITY jersey.common.CommonProperties.PROVIDER_DEFAULT_DISABLE "<link xlink:href='&jersey.javadoc.uri.prefix;/CommonProperties.html#PROVIDER_DEFAULT_DISABLE'>CommonProperties.PROVIDER_DEFAULT_DISABLE</link>" >
 <!ENTITY jersey.common.internal.inject.DisposableSupplier "<link xlink:href='&jersey.javadoc.uri.prefix;/internal/inject/DisposableSupplier.html'>DisposableSupplier</link>">
 <!ENTITY jersey.common.internal.inject.InjectionManager "<link xlink:href='&jersey.javadoc.uri.prefix;/internal/inject/InjectionManager.html'>InjectionManager</link>">
 <!ENTITY jersey.common.internal.inject.AbstractBinder "<link xlink:href='&jersey.javadoc.uri.prefix;/internal/inject/AbstractBinder.html'>AbstractBinder</link>">
@@ -837,7 +856,7 @@
 <!ENTITY lit.jersey.client.EncodingFeature "<literal>EncodingFeature</literal>">
 <!ENTITY lit.jersey.client.HttpAuthenticationFeature "<literal>HttpAuthenticationFeature</literal>">
 <!ENTITY lit.jersey.client.HttpUrlConnectorProvider "<literal>HttpUrlConnectorProvider</literal>">
-<!ENTITY lit.jersey.client.ServiceLocatorClientProvider "<literal>ServiceLocatorClientProvider</literal>">
+<!ENTITY lit.jersey.client.InjectionManagerClientProvider "<literal>InjectionManagerClientProvider</literal>">
 <!ENTITY lit.jersey.client.oauth1.AccessToken "<literal>AccessToken</literal>">
 <!ENTITY lit.jersey.client.oauth1.ConsumerCredentials "<literal>ConsumerCredentials</literal>">
 <!ENTITY lit.jersey.client.oauth1.OAuth1AuthorizationFlow "<literal>OAuth1AuthorizationFlow</literal>">
@@ -857,7 +876,7 @@
 <!ENTITY lit.jersey.common.CommonProperties.MOXY_JSON_FEATURE_DISABLE "<literal>CommonProperties.MOXY_JSON_FEATURE_DISABLE</literal>" >
 <!ENTITY lit.jersey.common.CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER "<literal>CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER</literal>" >
 <!ENTITY lit.jersey.common.internal.inject.InjectionManager "<literal>InjectionManager</literal>">
-<!ENTITY lit.jersey.common.ServiceLocatorProvider "<literal>ServiceLocatorProvider</literal>">
+<!ENTITY lit.jersey.common.InjectionManagerProvider "<literal>InjectionManagerProvider</literal>">
 <!ENTITY lit.jersey.common.SslConfigurator "<literal>SslConfigurator</literal>">
 <!ENTITY lit.jersey.common.spi.AbstractThreadPoolProvider "<literal>AbstractThreadPoolProvider</literal>">
 <!ENTITY lit.jersey.common.spi.ContentEncoder "<literal>ContentEncoder</literal>">
diff --git a/docs/src/main/docbook/mbw.xml b/docs/src/main/docbook/mbw.xml
index b61881b..0502be2 100644
--- a/docs/src/main/docbook/mbw.xml
+++ b/docs/src/main/docbook/mbw.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -404,7 +404,7 @@
             <section>
                 <title><literal>MessageBodyReader.isReadable</literal></title>
                 <para>
-                    It defines the method <literal>isReadable()</literal> which has a very simliar meaning as method
+                    It defines the method <literal>isReadable()</literal> which has a very similar meaning as method
                     <literal>isWriteable()</literal> in &lit.jaxrs.ext.MessageBodyWriter;. The method returns &lit.true;
                     if it is able to de-serialize the given type. The <literal>annotations</literal> parameter contains annotations
                     that are attached to the entity parameter in the resource method. In our &lit.http.POST; resource
diff --git a/docs/src/main/docbook/media.xml b/docs/src/main/docbook/media.xml
index 03d1381..547ac61 100644
--- a/docs/src/main/docbook/media.xml
+++ b/docs/src/main/docbook/media.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" standalone="no"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -188,9 +188,10 @@
 
                 <para>
                     JSON Processing API is a new standard API for parsing and processing JSON structures in similar way to what
-                    SAX and StAX parsers provide for XML. The API is part of Java EE 7 and later. Another such JSON
-                    parsing/processing API is provided by Jettison framework. Both APIs provide a low-level access to producing
-                    and consuming JSON data structures. By adopting this low-level approach you would be working with
+                    SAX and StAX parsers provide for XML. The API is part of Java EE 7 and later (including Jakarta EE 8).
+                    Another such JSON parsing/processing API is provided by Jettison framework. Both APIs provide a low-level
+                    access to producing and consuming JSON data structures. By adopting this low-level approach you would
+                    be working with
                     <literal>JsonObject</literal> (or <literal>JSONObject</literal> respectively) and/or
                     <literal>JsonArray</literal> (or <literal>JSONArray</literal> respectively) classes when processing your
                     JSON data representations.
@@ -219,7 +220,7 @@
                 <para>
                     Now to build an equivalent <literal>JsonObject</literal>/<literal>JSONObject</literal> (in terms of
                     resulting JSON expression), you would need several more lines of code. The following example illustrates
-                    how to construct the same JSON data using the standard Java EE 7 JSON-Processing API.
+                    how to construct the same JSON data using the standard Jakarta EE 8 JSON-Processing API.
                     <example>
                         <title>Constructing a <literal>JsonObject</literal> (JSON-Processing)</title>
                         <programlisting language="java" linenumbering="numbered">JsonObject myObject = Json.createObjectBuilder()
@@ -1418,7 +1419,7 @@
                 Sample above shows simple &lit.jaxb.JAXBContext; creation, all you need to do is put
                 this &lit.jaxrs.ext.Provider; annotated class somewhere where Jersey can find it. Users sometimes
                 have problems with using provider classes on client side, so just to reminder - you have to
-                declare them in the client config (client does not do anything like package scanning done by server).
+                register them in the client config (client does not do anything like package scanning done by server).
             </para>
 
             <example>
@@ -1752,7 +1753,7 @@
                 <title>Injecting with &lit.jersey.media.multipart.FormDataParam;</title>
 
                 <para>
-                    If you just need to bin the named body part(s) of a <literal>multipart/form-data</literal> request
+                    If you just need to bind the named body part(s) of a <literal>multipart/form-data</literal> request
                     entity body to a resource method parameter you can use &jersey.media.multipart.FormDataParam; annotation.
                 </para>
                 <para>
diff --git a/docs/src/main/docbook/migration.xml b/docs/src/main/docbook/migration.xml
index 2dad581..8986154 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, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -28,8 +28,59 @@
          xml:id="migration">
     <title>Migration Guide</title>
 
+    <section xml:id="mig-2.30">
+        <title>Migrating from Jersey 2.29 to 2.29.1 and 2.30+</title>
+        <section xml:id="mig-2.30-breaking-changes">
+            <title>Breaking Changes</title>
+            <para>
+                Versions 2.30+ do not introduce nothing breaking, however version 2.29.1 has a major change which means
+                migration of Jersey to Jakarta EE (8) platform thus all inner dependencies to APIs are migrated to
+                jakarta EE maven coordinates. This also means that all dependencies which were taken from JDK as such
+                (like JAXB etc) are now external for JDK 1.8 (but for JDK 11+ they are external even in their Java EE form).
+                So, for those who will migrate to versions of Jersey 2.29.1 or 2.30+ , a massive extension of dependencies being
+                downloaded for the project build will occur.
+                Also there is extended support of JDKs - maximum compatibility with JDK 15 (including previous JDKs).
+                And other major improvements and fixes which are described in details in release notes below.
+            </para>
+        </section>
+        <section xml:id="mig-2.30-whats-new">
+            <title>Changes in versions 2.29.1, 2.30+</title>
+            <para>
+                For detailed information regarding particular changes please refer to release notes:
+                <simplelist>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.29.1.html">2.29.1</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.30.html">2.30</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.31.html">2.31</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.32.html">2.32</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.33.html">2.33</link></member>
+                </simplelist>
+            </para>
+        </section>
+    </section>
+    <section xml:id="mig-2.27">
+        <title>Migrating from Jersey 2.26 to 2.27 (2.28, 2.29)</title>
+        <section xml:id="mig-2.27-breaking-changes">
+            <title>Breaking Changes</title>
+            <para>
+                Between versions of 2.26 and 2.29 there are no breaking changes in Jersey which could prevent smooth migration
+                It is enough just to increase Maven (Gradle or any other) dependencies to a required version and all existing
+                code shall work without modifications.
+            </para>
+        </section>
+        <section xml:id="mig-2.27-whats-new">
+            <title>Changes in versions 2.27 - 2.29</title>
+            <para>
+                For detailed information regarding particular changes please refer to release notes:
+                <simplelist>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.27.html">2.27</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.28.html">2.28</link></member>
+                    <member><link xlink:href="&jersey.documentation.uri;/release-notes/2.29.html">2.29</link></member>
+                </simplelist>
+            </para>
+        </section>
+    </section>
     <section xml:id="mig-2.26">
-        <title>Migrating from Jersey 2.25 to &version;.</title>
+        <title>Migrating from Jersey 2.25 to 2.26.</title>
         <section xml:id="mig-2.26-breaking-changes">
             <title>Breaking Changes</title>
             <para>
diff --git a/docs/src/main/docbook/monitoring.xml b/docs/src/main/docbook/monitoring.xml
index e96c4e7..0f561e9 100644
--- a/docs/src/main/docbook/monitoring.xml
+++ b/docs/src/main/docbook/monitoring.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -533,7 +533,7 @@
                     <link linkend="resource-builder">"Programmatic API for Building Resources"</link>), one Java resource class
                     can be an endpoint for resource methods on many different URIs. And also one URI can be served by method from
                     many different Java classes. Therefore both views are not to be compared 1:1. Instead they provide
-                    different loggical views on your JAX-RS application. This monitoring feature can also be helpful when designing
+                    different logical views on your JAX-RS application. This monitoring feature can also be helpful when designing
                     the JAX-RS APIs as it provides nice view on available root application URIs.
                 </para>
                 <para>
diff --git a/docs/src/main/docbook/mp-config.xml b/docs/src/main/docbook/mp-config.xml
index a201cf1..c2ff5c8 100644
--- a/docs/src/main/docbook/mp-config.xml
+++ b/docs/src/main/docbook/mp-config.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2020, 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
@@ -68,7 +68,7 @@
                 &lt;dependency>
                     &lt;groupId>org.glassfish.jersey.ext.microprofile&lt;/groupId>
                     &lt;artifactId>jersey-mp-config&lt;/artifactId>
-                    &lt;version>2.30&lt;/scope>
+                    &lt;version>&version;&lt;/scope>
                 &lt;/dependency>
             </programlisting>
             And the Microprofile Config implementation, such as Helidon:
@@ -76,7 +76,7 @@
                 &lt;dependency>
                     &lt;groupId>io.helidon.microprofile.config&lt;/groupId>
                     &lt;artifactId>helidon-microprofile-config&lt;/artifactId>
-                    &lt;version>1.3.1&lt;/version>
+                    &lt;version>&helidon.version;&lt;/version>
                 &lt;/dependency>
             </programlisting>
             Or SmallRye:
@@ -84,7 +84,7 @@
                 &lt;dependency>
                     &lt;groupId>io.smallrye&lt;/groupId>
                     &lt;artifactId>smallrye-config&lt;/artifactId>
-                    &lt;version>1.3.6&lt;/version>
+                    &lt;version>&smallrye.version;&lt;/version>
                 &lt;/dependency>
             </programlisting>
             or any other suitable Microprofile Config implementation.
diff --git a/docs/src/main/docbook/mvc.xml b/docs/src/main/docbook/mvc.xml
index d0e2900..4f7b5bb 100644
--- a/docs/src/main/docbook/mvc.xml
+++ b/docs/src/main/docbook/mvc.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 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
@@ -38,8 +38,7 @@
 
     <note>
         <para>
-            Some of the passages/examples from this chapter have been taken from
-            <link xlink:href="https://blogs.oracle.com/sandoz/entry/mvcj">MVCJ</link> blog article written by Paul Sandoz.
+            Some of the passages/examples from this chapter have been created by Paul Sandoz.
         </para>
     </note>
 
@@ -522,7 +521,7 @@
             <title>Freemarker</title>
 
             <para>
-                An integration module for <link xlink:href="http://freemarker.org/">Freemarker</link>-based templating engine.
+                An integration module for <link xlink:href="https://freemarker.apache.org/">Freemarker</link>-based templating engine.
             </para>
 
             <para>
diff --git a/docs/src/main/docbook/representations.xml b/docs/src/main/docbook/representations.xml
index a68324b..0e00786 100644
--- a/docs/src/main/docbook/representations.xml
+++ b/docs/src/main/docbook/representations.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -346,7 +346,7 @@
         </para>
 
         <para>The constructor of the
-            <literal>SparklinesResouce</literal>
+            <literal>SparklinesResource</literal>
             root
             resource class computes an entity tag from the request URI and then calls
             the
diff --git a/docs/src/main/docbook/resource-builder.xml b/docs/src/main/docbook/resource-builder.xml
index f4d8082..0c4d2be 100644
--- a/docs/src/main/docbook/resource-builder.xml
+++ b/docs/src/main/docbook/resource-builder.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -226,7 +226,7 @@
             In the example above the <literal>Resource</literal> is built from
             a <literal>HelloWorldResource</literal> resource class. The resource model built this way
             contains a &lit.http.GET; method producing <literal>'text/plain'</literal> responses with "Hello World!" entity.
-            This is quite important as it allows you to whatever Resource objects based on introspecting
+            This is quite important as it allows you to build any Resource objects based on introspecting
             existing JAX-RS resources and use builder API to enhance such these standard resources.
             In the example we used already implemented <literal>HelloWorldResource</literal> resource class
             and enhanced it by &lit.http.OPTIONS; method. The &lit.http.OPTIONS; method is handled by an Inflector which
@@ -267,7 +267,7 @@
         </para>
         <para>
             See the javadocs of the resource builder API for more information.
-            <!--TODO javadoc link-->
+            <link xlink:href="&jersey.javadoc.root.uri;/org/glassfish/jersey/server/model/Resource.Builder.html">Resource.Builder</link>
         </para>
     </section>
     <section>
@@ -350,8 +350,8 @@
         <para>
             Note that you only need to register such a ModelProcessor as your custom extension provider in the same way as you
             would register any standard JAX-RS extension provider. During an application deployment, Jersey will look for any
-            registered model processor and execute them. As you can seem, model processors are very powerful as they can do
-            whatever manipulation with the resource model they like. A model processor can even, for example, completely ignore
+            registered model processor and execute them. As you can see, model processors are very powerful as they can do
+            any manipulations with the resource models. A model processor can even, for example, completely ignore
             the old resource model and return a new custom resource model with a single "Hello world!" resource, which would
             result in only the "Hello world!" resource being deployed in your application. Of course, it would not not make
             much sense to implement such model processor, but the scenario demonstrates how powerful the model processor concept
diff --git a/docs/src/main/docbook/security.xml b/docs/src/main/docbook/security.xml
index 492fdcb..5cf0697 100644
--- a/docs/src/main/docbook/security.xml
+++ b/docs/src/main/docbook/security.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -126,7 +126,7 @@
                 <title>Security resources with <literal>web.xml</literal></title>
                 <para>
                     In cases where a Jersey application is deployed in a Servlet container you can rely only on
-                    the standard Java EE Web application security mechanisms offered by the Servlet container and
+                    the standard Java/Jakarta EE Web application security mechanisms offered by the Servlet container and
                     configurable via application's <literal>web.xml</literal> descriptor.
                     You need to define the <literal>&lt;security-constraint&gt;</literal> elements in the
                     <literal>web.xml</literal> and assign roles which are able to access these resources. You can also
@@ -166,7 +166,7 @@
                     classes you may need to update also the <literal>web.xml</literal>
                     security configurations to reflect the changed JAX-RS resource paths. Therefore Jersey offers a
                     <link linkend="annotation-based-security">more flexible solution</link>
-                    based on placing standard Java EE security annotations directly on JAX-RS resource classes and methods.
+                    based on placing standard Java/Jakarta EE security annotations directly on JAX-RS resource classes and methods.
                 </para>
             </section>
 
@@ -235,7 +235,7 @@
                     roles that are allowed to execute a particular method.
                 </para>
                 <para>
-                    These Java EE security annotations are processed internally in the request filter registered using
+                    These Java/Jakarta EE security annotations are processed internally in the request filter registered using
                     the Jersey &lit.jersey.server.RolesAllowedDynamicFeature;. The roles defined in the annotations are
                     tested against current roles set in the &lit.jaxrs.core.SecurityContext; using
                     the &lit.jaxrs.core.SecurityContext;<literal>.isUserInRole(String role)</literal> method. In case the caller
diff --git a/docs/src/main/docbook/sse.xml b/docs/src/main/docbook/sse.xml
index 20cc298..01daec9 100644
--- a/docs/src/main/docbook/sse.xml
+++ b/docs/src/main/docbook/sse.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -507,7 +507,6 @@
 onComplete);
                 </programlisting>
             </example>
-            <para>
                 Few notes to the <literal>subscribe()</literal> methods:
                 <itemizedlist>
                     <listitem>
@@ -539,7 +538,7 @@
                     <listitem>
                         <para>
                             The complete <literal>subscribe()</literal> method adds the <literal>onSubscribe()</literal> callback.
-                            This gives the subscriber a tool to manage the load and do a back-pressure by incrementaly
+                            This gives the subscriber a tool to manage the load and do a back-pressure by incrementally
                             requesting only certain amount of items. When <literal>SseEventSource</literal> registers a new
                             subscriber, it calls its <literal>onSubscribe</literal> handler and hands over the
                             <literal>javax.ws.rs.sse.SseSubscription</literal>
@@ -570,7 +569,6 @@
                     </listitem>
                 </itemizedlist>
 
-            </para>
 
         </para>
         <section xml:id="sse-event-source-reconnect">
@@ -990,7 +988,7 @@
                     method. The next method
                     arguments define the names of the events to receive and can be omitted. If names are defined, the listener
                     will be associated with the named events and will only invoked for events with a name from the set of defined
-                    event names. It will not be invoked for events with any other name or for events without a name.
+                    event names. It will not be invoked for events with any other names or for events without a name.
 
                     <important>
                         <para>
diff --git a/docs/src/main/docbook/uris-and-links.xml b/docs/src/main/docbook/uris-and-links.xml
index fd5c01f..c72aaab 100644
--- a/docs/src/main/docbook/uris-and-links.xml
+++ b/docs/src/main/docbook/uris-and-links.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 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
@@ -88,7 +88,7 @@
         </para>
 
         <para>
-            The <literal>getUsersAsJsonArray</literal> method constructs a <literal>JSONArrray</literal>, where each element
+            The <literal>getUsersAsJsonArray</literal> method constructs a <literal>JSONArray</literal>, where each element
             is a URI identifying a specific user resource. The URI is built from the absolute path of the request URI by
             calling
             <link xlink:href="&jaxrs.javadoc.uri;/core/UriInfo.html#getAbsolutePathBuilder()">UriInfo.getAbsolutePathBuilder()</link>.
@@ -159,7 +159,7 @@
         </para>
 
         <para>
-            A &lit.jaxrs.core.Link; can be serialized to an HTTP message (tyically a response) as additional HTTP header
+            A &lit.jaxrs.core.Link; can be serialized to an HTTP message (typically a response) as additional HTTP header
             (there might be multiple &lit.jaxrs.core.Link; headers provided, thus multiple links can be served in a single
             message). Such HTTP header may look like:
             <screen language="text" linenumbering="unnumbered">Link: &lt;http://example.com/TheBook/chapter2&gt;; rel="prev"; title="previous chapter"</screen>
diff --git a/docs/src/main/docbook/wadl.xml b/docs/src/main/docbook/wadl.xml
index 991f8e4..664d124 100644
--- a/docs/src/main/docbook/wadl.xml
+++ b/docs/src/main/docbook/wadl.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--
 
-    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 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
@@ -73,10 +73,10 @@
 
             The WADL of a Jersey application that contains the resource above can be requested by a
             HTTP &lit.http.GET; request to <literal>http://localhost:9998/application.wadl</literal>.
-            The Jersey will return a response with a WADL content similar to the one in the following example:
+            Jersey will return a response with a WADL content similar to the one in the following example:
             <programlisting language="xml" linenumbering="numbered"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <application xmlns="http://wadl.dev.java.net/2009/02">
-    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 2.5-SNAPSHOT 2013-12-20 17:14:21"/>
+    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 2.33-SNAPSHOT 2020-12-20 17:14:21"/>
     <grammars/>
     <resources base="http://localhost:9998/">
         <resource path="country/{id}">
@@ -111,7 +111,7 @@
             <title>A simple WADL example - WADL content</title>
             <programlisting language="xml" linenumbering="numbered"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <application xmlns="http://wadl.dev.java.net/2009/02">
-    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 2.5-SNAPSHOT 2013-12-20 17:14:21"/>
+    <doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 2.33-SNAPSHOT 2020-12-20 17:14:21"/>
     <doc xmlns:jersey="http://jersey.java.net/" jersey:hint="To get simplified WADL with user's resources only use the query parameter 'simple=true'. Link: http://localhost:9998/application.wadl?detail=true&amp;simple=true"/>
     <grammars/>
     <resources base="http://localhost:9998/">
@@ -269,7 +269,7 @@
                 <programlisting language="xml" linenumbering="numbered">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
 &lt;application xmlns="http://wadl.dev.java.net/2009/02"&gt;
     &lt;doc xmlns:jersey="http://jersey.java.net/"
-        jersey:generatedBy="Jersey: 2.0-SNAPSHOT ${buildNumber}"/&gt;
+        jersey:generatedBy="Jersey: 2.33-SNAPSHOT ${buildNumber}"/&gt;
     &lt;grammars/&gt;
     &lt;resources base="http://localhost:9998/"&gt;
         &lt;resource path="country/15"&gt;