Skip to content

Console Output

Skipping 14,255 KB.. Full Log
+            This is user guide for Tyrus 2.1.5. We are trying to keep it up to date
             as we add new features. Please use also our API documentation linked
             from the
             <fo:basic-link external-destination="url(https://projects.eclipse.org/projects/ee4j.tyrus)"><fo:inline>Tyrus</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://projects.eclipse.org/projects/ee4j.tyrus)">https://projects.eclipse.org/projects/ee4j.tyrus</fo:basic-link>]</fo:inline> and
@@ -144,13 +144,13 @@
 <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e164">&lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
     &lt;artifactId&gt;tyrus-server&lt;/artifactId&gt;
-    &lt;version&gt;2.1.4&lt;/version&gt;
+    &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;
 
 &lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
     &lt;artifactId&gt;tyrus-container-grizzly-server&lt;/artifactId&gt;
-    &lt;version&gt;2.1.4&lt;/version&gt;
+    &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;</fo:block>
             </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
                 Let's use the very same example like for Java API for WebSocket and deploy the <fo:inline font-family="monospace">EchoEndpointAnnotated</fo:inline> on the
@@ -179,7 +179,7 @@
             <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e185">mvn archetype:generate -DarchetypeArtifactId=tyrus-archetype-echo \
 -DarchetypeGroupId=org.glassfish.tyrus.archetypes -DinteractiveMode=false \
 -DgroupId=com.example -DartifactId=echo-service -Dpackage=com.example \
--DarchetypeVersion=2.1.4</fo:block>
+-DarchetypeVersion=2.1.5</fo:block>
 
             Feel free to adjust the <fo:inline font-family="monospace">groupId</fo:inline>, <fo:inline font-family="monospace">package</fo:inline> and/or <fo:inline font-family="monospace">artifactId</fo:inline>
             of your new project. Alternatively, you can change it by updating the new project pom.xml once it gets generated.
@@ -339,51 +339,51 @@ RECEIVED: Hello Web Sockets !</fo:block>
         manage dependencies of their applications than developers using ant or other build technologies. The following
         table provides an overview of all Tyrus modules and their dependencies with links to the respective binaries.
     </fo:block><fo:block xmlns:rx="http://www.renderx.com/XSL/Extensions" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="auto" id="dependencies-table-modules"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" keep-with-next.within-column="always">Table 2.1. Tyrus core modules</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-start-style="solid" border-end-style="solid" border-top-style="solid" border-bottom-style="solid" border-start-width="0.5pt" border-end-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-start-color="black" border-end-color="black" border-top-color="black" border-bottom-color="black" table-layout="fixed" width="100%"><fo:table-column column-number="1" column-width="14%"/><fo:table-column column-number="2" column-width="35%"/><fo:table-column column-number="3" column-width="51%"/><fo:table-header start-indent="0pt" end-indent="0pt"><fo:table-row keep-with-next.within-column="always"><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block font-weight="bold">Module</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block font-weight="bold">Dependencies</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body start-indent="0pt" end-indent="0pt"><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.5|jar)"><fo:inline>
                             tyrus-server
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-core, tyrus-spi, tyrus-websocket-core</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Basic server functionality</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.5|jar)"><fo:inline>
                             tyrus-core
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-spi, tyrus-websocket-core</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Core Tyrus functionality</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.5|jar)"><fo:inline>
                             tyrus-client
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-core, tyrus-spi, tyrus-websocket-core</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Basic client functionality</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.5|jar)"><fo:inline>
                             tyrus-documentation
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>[nothing]</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Project documentation</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.5|jar)"><fo:inline>
                             tyrus-websocket-core
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>[nothing]</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>The WebSocket protocol</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.4/tyrus-samples-2.1.4-all.zip)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.5/tyrus-samples-2.1.5-all.zip)"><fo:inline>
                             tyrus-samples
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.4/tyrus-samples-2.1.4-all.zip)">http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.4/tyrus-samples-2.1.4-all.zip</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.5/tyrus-samples-2.1.5-all.zip)">http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.5/tyrus-samples-2.1.5-all.zip</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-server, tyrus-client, tyrus-container-grizzly, tyrus-core, tyrus-spi,
                         tyrus-websocket-core
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Samples of using Java API for WebSocket and Tyrus</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.5|jar)"><fo:inline>
                             tyrus-spi
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>[nothing]</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>SPI</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block><fo:block xmlns:rx="http://www.renderx.com/XSL/Extensions" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="auto" id="dependencies-table-containers"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" keep-with-next.within-column="always">Table 2.2. Tyrus containers</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-start-style="solid" border-end-style="solid" border-top-style="solid" border-bottom-style="solid" border-start-width="0.5pt" border-end-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-start-color="black" border-end-color="black" border-top-color="black" border-bottom-color="black" table-layout="fixed" width="100%"><fo:table-column column-number="1" column-width="14%"/><fo:table-column column-number="2" column-width="35%"/><fo:table-column column-number="3" column-width="51%"/><fo:table-header start-indent="0pt" end-indent="0pt"><fo:table-row keep-with-next.within-column="always"><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block font-weight="bold">Module</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block font-weight="bold">Dependencies</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body start-indent="0pt" end-indent="0pt"><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.5|jar)"><fo:inline>
                             tyrus-container-glassfish-cdi
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-spi</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>CDI support</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.5|jar)"><fo:inline>
                             tyrus-container-glassfish-ejb
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-spi</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>EJB support</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.4|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.5|jar)"><fo:inline>
                             tyrus-container-grizzly
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.4|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.4|jar</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.5|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.5|jar</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-core, tyrus-spi, tyrus-websocket-core</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Grizzly integration for Tyrus client and standalone server usage</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>
-                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.4|bundle)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.5|bundle)"><fo:inline>
                             tyrus-container-servlet
-                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.4|bundle)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.4|bundle</fo:basic-link>]</fo:inline>
+                        </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.5|bundle)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.5|bundle</fo:basic-link>]</fo:inline>
                     </fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" border-end-width="0.5pt" border-end-style="solid" border-end-color="black" text-align="left"><fo:block>tyrus-server, tyrus-core, tyrus-spi, tyrus-websocket-core</fo:block></fo:table-cell><fo:table-cell padding-start="2pt" padding-end="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Servlet support for integration into web containers</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Deploying WebSocket Endpoints</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>Deploying WebSocket Endpoints</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="blank-body"><fo:block text-align="center"/></fo:static-content><fo:static-content flow-name="xsl-region-inner-first"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-inner-odd"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-inner-even"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-inner-blank"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-outer-first"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-outer-odd"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-outer-even"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-outer-blank"><fo:block/></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row block-progression-dimension.minimum="14pt"><fo:table-cell text-align="start" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="end" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="deployment"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="0pt"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" text-align="start" start-indent="0pt" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Chapter 3. Deploying WebSocket Endpoints</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
         Deploying WebSocket endpoints can be done in two ways. Either deploying via putting the endpoint in the WAR
     file, or using the ServerContainer methods to deploy the programmatic endpoint in the deployment phase.
@@ -1096,7 +1096,7 @@ RECEIVED: Hello Web Sockets !</fo:block>
     other WebSocket API implementation.</fo:block><fo:block id="d0e1287"><fo:block><fo:block><fo:block keep-together.within-column="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block keep-with-next.within-column="always"><fo:block font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" text-align="start" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Client-side SSL configuration</fo:marker><fo:block font-size="20.735999999999997pt">8.1. Client-side SSL configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When accessing "wss" URLs, Tyrus client will pick up whatever keystore and truststore is actually set for current JVM instance, but
             that might not be always convenient. WebSocket API does not have this feature (yet, see <fo:basic-link external-destination="url(https://java.net/jira/browse/WEBSOCKET_SPEC-210)"><fo:inline>WEBSOCKET_SPEC-210</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://java.net/jira/browse/WEBSOCKET_SPEC-210)">https://java.net/jira/browse/WEBSOCKET_SPEC-210</fo:basic-link>]</fo:inline>),
             so Tyrus exposed two SSL configuration classes <fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html)"><fo:inline>SSLEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html)">https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html</fo:basic-link>]</fo:inline>
-            and <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+            and <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
             , which can be used for specifying all SSL parameters to be used with current client instance. The former configuration class
             belongs to Grizzly configuration API and therefore works only with Grizzly client. The latter configuration class
             works with both Grizzly and JDK client and offers some extensions over the Grizzly SSLEngineConfigurator
@@ -1104,7 +1104,7 @@ RECEIVED: Hello Web Sockets !</fo:block>
             please refer to the following subsection dealing with host verification.
 
             Additionally, WebSocket API does not have anything like a client, only WebSocketContainer and it does not have any properties, so you need to use Tyrus specific class -
-            <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/ClientManager.html)"><fo:inline>ClientManager</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/ClientManager.html)">https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/ClientManager.html</fo:basic-link>]</fo:inline>.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e1304">  1 final ClientManager client = ClientManager.createClient();
+            <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/ClientManager.html)"><fo:inline>ClientManager</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/ClientManager.html)">https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/ClientManager.html</fo:basic-link>]</fo:inline>.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e1304">  1 final ClientManager client = ClientManager.createClient();
   2 
   3 System.getProperties().put("javax.net.debug", "all");
   4 System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, "...");
@@ -1142,7 +1142,7 @@ RECEIVED: Hello Web Sockets !</fo:block>
                 to note that Grizzly specific
                 <fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html)"><fo:inline>SSLEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html)">https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html</fo:basic-link>]</fo:inline>
                 does not provide these options and for modifying the default host name verification policy
-                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
                 must be used instead. The following sample shows how to disable host name verification:
                 <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e1324">  1 SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
   2 sslEngineConfigurator.setHostVerificationEnabled(false)
@@ -1496,7 +1496,7 @@ RECEIVED: Hello Web Sockets !</fo:block>
 &lt;dependency&gt;
   &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
   &lt;artifactId&gt;tyrus-container-jdk-client&lt;/artifactId&gt;
-  &lt;version&gt;2.1.4&lt;/version&gt;
+  &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;
             </fo:block>
             Grizzly client is the default option, so creating a client without any parameters will result in Grizzly client being used.
@@ -1527,9 +1527,9 @@ RECEIVED: Hello Web Sockets !</fo:block>
                 end
                 <fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLContextConfigurator.html)"><fo:inline>SSLContextConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLContextConfigurator.html)">https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLContextConfigurator.html</fo:basic-link>]</fo:inline>
                 from Grizzly project and
-                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)"><fo:inline>SslEngineConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
                 and
-                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslContextConfigurator.html)"><fo:inline>SslContextConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslContextConfigurator.html)">https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslContextConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslContextConfigurator.html)"><fo:inline>SslContextConfigurator</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslContextConfigurator.html)">https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslContextConfigurator.html</fo:basic-link>]</fo:inline>
                 from Tyrus project, but JDK client supports only the Tyrus version of these classes.
                 The following code sample shows an example of some SSL parameters configuration for the JDK client:
                 <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" font-family="monospace" id="d0e1529">  1 
diff --git a/documentation/latest/user-guide.html b/documentation/latest/user-guide.html
index 2c2f9fb3..566ed8c2 100644
--- a/documentation/latest/user-guide.html
+++ b/documentation/latest/user-guide.html
@@ -1,7 +1,7 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Tyrus 2.1.4 User Guide</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e2"></a>Tyrus 2.1.4 User Guide</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#preface">Preface</a></span></dt><dt><span class="chapter"><a href="#getting-started">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e34">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="#d0e78">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd><dt><span class="section"><a href="#getting-started-using-archetype">1.2. Creating a New Project from Maven Archetype</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e178">1.2.1. Executing maven</a></span></dt><dt><span class="section"><a href="#d0e197">1.2.2. Exploring the Newly Created Project</a></span></dt><dt><span class="section"><a href="#d0e293">1.2.3. Building the generated project</a></span></dt><dt><span class="section"><a href="#d0e311">1.2.4. Running the deployed application</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#modules-and-dependencies">2. Tyrus Modules and Dependencies</a></span></dt><dt><span class="chapter"><a href="#deployment">3. Deploying WebSocket Endpoints</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e493">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e518">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e569">3.2. Deploying endpoints via <code class="code">jakarta.websocket.server.ServerContainer</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="#websocket-api">4. WebSocket API Endpoints, Sessions and MessageHandlers</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e599">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e623">4.1.1. jakarta.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e758">4.1.2. jakarta.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e800">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e803">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e816">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e829">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e842">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e855">4.3. MessageHandlers</a></span></dt></dl></dd><dt><span class="chapter"><a href="#configurations">5. Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e944">5.1. <code class="code">jakarta.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e997">5.2. <code class="code">jakarta.websocket.ClientEndpointConfig</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="#lifecycle">6. Endpoint Lifecycle, Sessions, Sending Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1029">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e1049">6.2. <code class="code">jakarta.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e1134">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1166">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1180">6.4.1. <code class="code">jakarta.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1204">6.4.2. <code class="code">jakarta.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#injection">7. Injection Support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1234">7.1. <code class="code">jakarta.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1261">7.2. EJB sample</a></span></dt></dl></dd><dt><span class="chapter"><a href="#tyrus-proprietary-config">8. Tyrus proprietary configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1287">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1308">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1330">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1343">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1356">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1374">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1396">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1417">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1442">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1463">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1470">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1482">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1490">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1512">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1532">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1540">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1606">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1634">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1642">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1716">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1733">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1752">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1774">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1802">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1817">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1842">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1850">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1868">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1895">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1933">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1950">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1975">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e2007">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e2044">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e2065">8.16.1. Configuration</a></span></dt></dl></dd></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#dependencies-table-modules">Tyrus core modules</a></dt><dt>2.2. <a href="#dependencies-table-containers">Tyrus containers</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>1.1. <a href="#websocket-annotated-echo-endpoint">Annotated Echo Endpoint</a></dt><dt>1.2. <a href="#websocket-client-endpoint">Client Endpoint</a></dt><dt>1.3. <a href="#websocket-programmatic-echo-endpoint">Programmatic Echo Endpoint</a></dt><dt>3.1. <a href="#deployment-serverapplicationconfig">Deployment of WAR containing several classes extending <code class="code">jakarta.websocket.server.ServerApplicationConfig</code></a></dt><dt>3.2. <a href="#deployment-servercontainer">Deployment of Annotated Endpoint Using ServerContainer</a></dt><dt>4.1. <a href="#endpoints-echo-endpoint">Echo sample server endpoint.</a></dt><dt>4.2. <a href="#endpoints-serverendpoint-annotation">jakarta.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="#d0e669">Specifying URI path parameter</a></dt><dt>4.4. <a href="#d0e687">SampleDecoder</a></dt><dt>4.5. <a href="#d0e705">SampleEncoder</a></dt><dt>4.6. <a href="#d0e763">SampleClientEndpoint</a></dt><dt>4.7. <a href="#d0e810">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="#d0e823">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="#d0e836">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="#d0e849">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="#d0e868">MessageHandler basic example</a></dt><dt>5.1. <a href="#d0e981">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="#d0e991">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="#d0e1020">ClientEndpointConfig built using Builder</a></dt><dt>6.1. <a href="#lifecycle-echo-sample">Lifecycle echo sample</a></dt><dt>6.2. <a href="#lifecycle-onmessage-sample">Sending message in @OnMessage</a></dt><dt>6.3. <a href="#lifecycle-remote-endpoint-sample">Sending message via RemoteEndpoint.Basic instance</a></dt><dt>6.4. <a href="#lifecycle-remote-endpoint-partial-sample">Method for sending partial text message</a></dt><dt>6.5. <a href="#lifecycle-remote-endpoint-async-future">Sending mesage the async way using Future</a></dt><dt>7.1. <a href="#cdi-simple-bean">Injecting bean into <code class="code">jakarta.websocket.server.ServerEndpoint</code></a></dt><dt>7.2. <a href="#cdi-singleton-bean">Echo sample server endpoint.</a></dt></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="preface"></a>Preface</h1></div></div></div><p>
-            This is user guide for Tyrus 2.1.4. We are trying to keep it up to date
+   <title>Tyrus 2.1.5 User Guide</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e2"></a>Tyrus 2.1.5 User Guide</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#preface">Preface</a></span></dt><dt><span class="chapter"><a href="#getting-started">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e34">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="#d0e78">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd><dt><span class="section"><a href="#getting-started-using-archetype">1.2. Creating a New Project from Maven Archetype</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e178">1.2.1. Executing maven</a></span></dt><dt><span class="section"><a href="#d0e197">1.2.2. Exploring the Newly Created Project</a></span></dt><dt><span class="section"><a href="#d0e293">1.2.3. Building the generated project</a></span></dt><dt><span class="section"><a href="#d0e311">1.2.4. Running the deployed application</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#modules-and-dependencies">2. Tyrus Modules and Dependencies</a></span></dt><dt><span class="chapter"><a href="#deployment">3. Deploying WebSocket Endpoints</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e493">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e518">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e569">3.2. Deploying endpoints via <code class="code">jakarta.websocket.server.ServerContainer</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="#websocket-api">4. WebSocket API Endpoints, Sessions and MessageHandlers</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e599">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e623">4.1.1. jakarta.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e758">4.1.2. jakarta.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e800">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e803">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e816">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e829">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e842">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e855">4.3. MessageHandlers</a></span></dt></dl></dd><dt><span class="chapter"><a href="#configurations">5. Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e944">5.1. <code class="code">jakarta.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e997">5.2. <code class="code">jakarta.websocket.ClientEndpointConfig</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="#lifecycle">6. Endpoint Lifecycle, Sessions, Sending Messages</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1029">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e1049">6.2. <code class="code">jakarta.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e1134">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1166">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1180">6.4.1. <code class="code">jakarta.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1204">6.4.2. <code class="code">jakarta.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#injection">7. Injection Support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1234">7.1. <code class="code">jakarta.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1261">7.2. EJB sample</a></span></dt></dl></dd><dt><span class="chapter"><a href="#tyrus-proprietary-config">8. Tyrus proprietary configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1287">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1308">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1330">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1343">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1356">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1374">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1396">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1417">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1442">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1463">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1470">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1482">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1490">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1512">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1532">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1540">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1606">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1634">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1642">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1716">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1733">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1752">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1774">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1802">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1817">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1842">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1850">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1868">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1895">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1933">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1950">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1975">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e2007">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e2044">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e2065">8.16.1. Configuration</a></span></dt></dl></dd></dl></dd></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#dependencies-table-modules">Tyrus core modules</a></dt><dt>2.2. <a href="#dependencies-table-containers">Tyrus containers</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>1.1. <a href="#websocket-annotated-echo-endpoint">Annotated Echo Endpoint</a></dt><dt>1.2. <a href="#websocket-client-endpoint">Client Endpoint</a></dt><dt>1.3. <a href="#websocket-programmatic-echo-endpoint">Programmatic Echo Endpoint</a></dt><dt>3.1. <a href="#deployment-serverapplicationconfig">Deployment of WAR containing several classes extending <code class="code">jakarta.websocket.server.ServerApplicationConfig</code></a></dt><dt>3.2. <a href="#deployment-servercontainer">Deployment of Annotated Endpoint Using ServerContainer</a></dt><dt>4.1. <a href="#endpoints-echo-endpoint">Echo sample server endpoint.</a></dt><dt>4.2. <a href="#endpoints-serverendpoint-annotation">jakarta.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="#d0e669">Specifying URI path parameter</a></dt><dt>4.4. <a href="#d0e687">SampleDecoder</a></dt><dt>4.5. <a href="#d0e705">SampleEncoder</a></dt><dt>4.6. <a href="#d0e763">SampleClientEndpoint</a></dt><dt>4.7. <a href="#d0e810">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="#d0e823">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="#d0e836">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="#d0e849">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="#d0e868">MessageHandler basic example</a></dt><dt>5.1. <a href="#d0e981">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="#d0e991">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="#d0e1020">ClientEndpointConfig built using Builder</a></dt><dt>6.1. <a href="#lifecycle-echo-sample">Lifecycle echo sample</a></dt><dt>6.2. <a href="#lifecycle-onmessage-sample">Sending message in @OnMessage</a></dt><dt>6.3. <a href="#lifecycle-remote-endpoint-sample">Sending message via RemoteEndpoint.Basic instance</a></dt><dt>6.4. <a href="#lifecycle-remote-endpoint-partial-sample">Method for sending partial text message</a></dt><dt>6.5. <a href="#lifecycle-remote-endpoint-async-future">Sending mesage the async way using Future</a></dt><dt>7.1. <a href="#cdi-simple-bean">Injecting bean into <code class="code">jakarta.websocket.server.ServerEndpoint</code></a></dt><dt>7.2. <a href="#cdi-singleton-bean">Echo sample server endpoint.</a></dt></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="preface"></a>Preface</h1></div></div></div><p>
+            This is user guide for Tyrus 2.1.5. We are trying to keep it up to date
             as we add new features. Please use also our API documentation linked
             from the
             <a class="link" href="https://projects.eclipse.org/projects/ee4j.tyrus" target="_top">Tyrus</a> and
@@ -146,13 +146,13 @@ public class EchoEndpointAnnotated {
 </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">&lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
     &lt;artifactId&gt;tyrus-server&lt;/artifactId&gt;
-    &lt;version&gt;2.1.4&lt;/version&gt;
+    &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;
 
 &lt;dependency&gt;
     &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
     &lt;artifactId&gt;tyrus-container-grizzly-server&lt;/artifactId&gt;
-    &lt;version&gt;2.1.4&lt;/version&gt;
+    &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;</pre><p>
             </p><p>
                 Let's use the very same example like for Java API for WebSocket and deploy the <code class="code">EchoEndpointAnnotated</code> on the
@@ -181,7 +181,7 @@ public class EchoEndpointAnnotated {
             <pre class="&#xA;    toolbar: false;&#xA;    brush: bash;&#xA;    gutter: false;">mvn archetype:generate -DarchetypeArtifactId=tyrus-archetype-echo \
 -DarchetypeGroupId=org.glassfish.tyrus.archetypes -DinteractiveMode=false \
 -DgroupId=com.example -DartifactId=echo-service -Dpackage=com.example \
--DarchetypeVersion=2.1.4</pre>
+-DarchetypeVersion=2.1.5</pre>
 
             Feel free to adjust the <code class="literal">groupId</code>, <code class="literal">package</code> and/or <code class="literal">artifactId</code>
             of your new project. Alternatively, you can change it by updating the new project pom.xml once it gets generated.
@@ -341,49 +341,49 @@ RECEIVED: Hello Web Sockets !</pre><p>
         manage dependencies of their applications than developers using ant or other build technologies. The following
         table provides an overview of all Tyrus modules and their dependencies with links to the respective binaries.
     </p><div class="table"><a name="dependencies-table-modules"></a><p class="title"><b>Table&nbsp;2.1.&nbsp;Tyrus core modules</b></p><div class="table-contents"><table summary="Tyrus core modules" border="1"><colgroup><col width="14%" align="left" class="c1"><col width="35%" align="left" class="c2"><col width="51%" align="left" class="c3"></colgroup><thead><tr><th align="left">Module</th><th align="left">Dependencies</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|2.1.5|jar" target="_top">
                             tyrus-server
                         </a>
                     </td><td align="left">tyrus-core, tyrus-spi, tyrus-websocket-core</td><td align="left">Basic server functionality</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|2.1.5|jar" target="_top">
                             tyrus-core
                         </a>
                     </td><td align="left">tyrus-spi, tyrus-websocket-core</td><td align="left">Core Tyrus functionality</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|2.1.5|jar" target="_top">
                             tyrus-client
                         </a>
                     </td><td align="left">tyrus-core, tyrus-spi, tyrus-websocket-core</td><td align="left">Basic client functionality</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|2.1.5|jar" target="_top">
                             tyrus-documentation
                         </a>
                     </td><td align="left">[nothing]</td><td align="left">Project documentation</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|2.1.5|jar" target="_top">
                             tyrus-websocket-core
                         </a>
                     </td><td align="left">[nothing]</td><td align="left">The WebSocket protocol</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.4/tyrus-samples-2.1.4-all.zip" target="_top">
+                        <a class="link" href="http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/2.1.5/tyrus-samples-2.1.5-all.zip" target="_top">
                             tyrus-samples
                         </a>
                     </td><td align="left">tyrus-server, tyrus-client, tyrus-container-grizzly, tyrus-core, tyrus-spi,
                         tyrus-websocket-core
                     </td><td align="left">Samples of using Java API for WebSocket and Tyrus</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|2.1.5|jar" target="_top">
                             tyrus-spi
                         </a>
                     </td><td align="left">[nothing]</td><td align="left">SPI</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="dependencies-table-containers"></a><p class="title"><b>Table&nbsp;2.2.&nbsp;Tyrus containers</b></p><div class="table-contents"><table summary="Tyrus containers" border="1"><colgroup><col width="14%" align="left" class="c1"><col width="35%" align="left" class="c2"><col width="51%" align="left" class="c3"></colgroup><thead><tr><th align="left">Module</th><th align="left">Dependencies</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|2.1.5|jar" target="_top">
                             tyrus-container-glassfish-cdi
                         </a>
                     </td><td align="left">tyrus-spi</td><td align="left">CDI support</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|2.1.5|jar" target="_top">
                             tyrus-container-glassfish-ejb
                         </a>
                     </td><td align="left">tyrus-spi</td><td align="left">EJB support</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.4|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|2.1.5|jar" target="_top">
                             tyrus-container-grizzly
                         </a>
                     </td><td align="left">tyrus-core, tyrus-spi, tyrus-websocket-core</td><td align="left">Grizzly integration for Tyrus client and standalone server usage</td></tr><tr><td align="left">
-                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.4|bundle" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|2.1.5|bundle" target="_top">
                             tyrus-container-servlet
                         </a>
                     </td><td align="left">tyrus-server, tyrus-core, tyrus-spi, tyrus-websocket-core</td><td align="left">Servlet support for integration into web containers</td></tr></tbody></table></div></div><br class="table-break"></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="deployment"></a>Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e493">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e518">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e569">3.2. Deploying endpoints via <code class="code">jakarta.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
@@ -1098,7 +1098,7 @@ public class LoggingInterceptor {
     other WebSocket API implementation.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1287"></a>8.1.&nbsp;Client-side SSL configuration</h2></div></div></div><p>When accessing "wss" URLs, Tyrus client will pick up whatever keystore and truststore is actually set for current JVM instance, but
             that might not be always convenient. WebSocket API does not have this feature (yet, see <a class="link" href="https://java.net/jira/browse/WEBSOCKET_SPEC-210" target="_top">WEBSOCKET_SPEC-210</a>),
             so Tyrus exposed two SSL configuration classes <a class="link" href="https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html" target="_top">SSLEngineConfigurator</a>
-            and <a class="link" href="https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+            and <a class="link" href="https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
             , which can be used for specifying all SSL parameters to be used with current client instance. The former configuration class
             belongs to Grizzly configuration API and therefore works only with Grizzly client. The latter configuration class
             works with both Grizzly and JDK client and offers some extensions over the Grizzly SSLEngineConfigurator
@@ -1106,7 +1106,7 @@ public class LoggingInterceptor {
             please refer to the following subsection dealing with host verification.
 
             Additionally, WebSocket API does not have anything like a client, only WebSocketContainer and it does not have any properties, so you need to use Tyrus specific class -
-            <a class="link" href="https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/ClientManager.html" target="_top">ClientManager</a>.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">final ClientManager client = ClientManager.createClient();
+            <a class="link" href="https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/ClientManager.html" target="_top">ClientManager</a>.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">final ClientManager client = ClientManager.createClient();
 
 System.getProperties().put("javax.net.debug", "all");
 System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, "...");
@@ -1144,7 +1144,7 @@ client.connectToServer(... , ClientEndpointConfig.Builder.create().build(),
                 to note that Grizzly specific
                 <a class="link" href="https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html" target="_top">SSLEngineConfigurator</a>
                 does not provide these options and for modifying the default host name verification policy
-                <a class="link" href="https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
                 must be used instead. The following sample shows how to disable host name verification:
                 </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
 sslEngineConfigurator.setHostVerificationEnabled(false)
@@ -1498,7 +1498,7 @@ final ClientManager client = ClientManager.createClient(JdkClientContainer.class
 &lt;dependency&gt;
   &lt;groupId&gt;org.glassfish.tyrus&lt;/groupId&gt;
   &lt;artifactId&gt;tyrus-container-jdk-client&lt;/artifactId&gt;
-  &lt;version&gt;2.1.4&lt;/version&gt;
+  &lt;version&gt;2.1.5&lt;/version&gt;
 &lt;/dependency&gt;
             </pre><p>
             Grizzly client is the default option, so creating a client without any parameters will result in Grizzly client being used.
@@ -1529,9 +1529,9 @@ final WebSocketContainer client = ContainerProvider.getWebSocketContainer();
                 end
                 <a class="link" href="https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLContextConfigurator.html" target="_top">SSLContextConfigurator</a>
                 from Grizzly project and
-                <a class="link" href="https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
                 and
-                <a class="link" href="https://tyrus.java.net/apidocs/2.1.4/org/glassfish/tyrus/client/SslContextConfigurator.html" target="_top">SslContextConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/2.1.5/org/glassfish/tyrus/client/SslContextConfigurator.html" target="_top">SslContextConfigurator</a>
                 from Tyrus project, but JDK client supports only the Tyrus version of these classes.
                 The following code sample shows an example of some SSL parameters configuration for the JDK client:
                 </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
diff --git a/documentation/latest/user-guide.pdf b/documentation/latest/user-guide.pdf
index 735de1be..1000577e 100644
Binary files a/documentation/latest/user-guide.pdf and b/documentation/latest/user-guide.pdf differ
+ git commit -m '[jenkins] automatic docbook update [2.1.5]'
[master 7a97214e] [jenkins] automatic docbook update [2.1.5]
 26 files changed, 6787 insertions(+), 87 deletions(-)
 create mode 100644 documentation/2.1.5/index/configurations.html
 create mode 100644 documentation/2.1.5/index/deployment.html
 create mode 100644 documentation/2.1.5/index/getting-started.html
 create mode 100644 documentation/2.1.5/index/index.html
 create mode 100644 documentation/2.1.5/index/injection.html
 create mode 100644 documentation/2.1.5/index/lifecycle.html
 create mode 100644 documentation/2.1.5/index/modules-and-dependencies.html
 create mode 100644 documentation/2.1.5/index/preface.html
 create mode 100644 documentation/2.1.5/index/tyrus-proprietary-config.html
 create mode 100644 documentation/2.1.5/index/websocket-api.html
 create mode 100644 documentation/2.1.5/user-guide.fo
 create mode 100644 documentation/2.1.5/user-guide.html
 create mode 100644 documentation/2.1.5/user-guide.pdf
+ git push origin master
remote: 
remote: GitHub found 5 vulnerabilities on eclipse-ee4j/tyrus-project.github.io's default branch (5 moderate). To find out more, visit:        
remote:      https://github.com/eclipse-ee4j/tyrus-project.github.io/security/dependabot        
remote: 
To github.com:eclipse-ee4j/tyrus-project.github.io.git
   f4f7691e..7a97214e  master -> master
$ ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 51 killed;
[ssh-agent] Stopped.
Finished: SUCCESS